2016-05-15 105 views
1

我修改了techproducts示例以更多地了解同义词。添加的字段有text2_deSolr:同义词的精确查询语法?

<fieldType name="text2_de" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer type="index"> 
     <tokenizer class="solr.ClassicTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_de.txt" ignoreCase="true"/> 
     <filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="index_synonyms.txt"/> 
    </analyzer> 
    <analyzer type="query"> 
     <tokenizer class="solr.ClassicTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 

的index_synonyms.txt由开始的水平分层同义词扩大了小面的类型根据https://wiki.apache.org/solr/HierarchicalFaceting

aaafoo => aaabar 
bbbfoo => bbbfoo bbbbar 
cccfoo => cccbar cccbaz 
fooaaa,baraaa,bazaaa 

Umwelt => 1/HS , 2/HS/Bereich , 3/HS/Bereich/Umwelt 
Mensch => 1/HS , 2/HS/Bereich , 3/HS/Bereich/Mensch 
... 

的加载项的信息显示,该分析仪工作得非常好并在文件集中找到60x“2/hs/bereich”。

loaded term info for the testfield

我不能做一个Solr的查询找到这些60份文件。加载的项信息的自动生成的超级链接

http://localhost:8983/solr/#/test/query?q=testfield:2%2Fhs%2Fbereich 

没有找到任何匹配(numFound =“0”):

<response> 
<lst name="responseHeader"> 
    <int name="status">0</int> 
    <int name="QTime">0</int> 
    <lst name="params"> 
    <str name="q">testfield:2/hs/bereich</str> 
    <str name="indent">on</str> 
    <str name="wt">xml</str> 
    <str name="_">1463321610566</str> 
    </lst> 
</lst> 
<result name="response" numFound="0" start="0"> 
</result> 
</response> 

请给我一个提示,使一个确切的Solr查询语法同义词找到这60个文件!

回答

0

发现的解决方案:请自动添加通配符产生在这个例子中,加载项信息的查询:testfield:2/HS/strahlung

<response> 
<lst name="responseHeader"> 
    <int name="status">0</int> 
    <int name="QTime">24</int> 
    <lst name="params"> 
    <str name="q">*:*</str> 
    <str name="facet.field">testfield</str> 
    <str name="indent">on</str> 
    <str name="facet.prefix">3/hs/strahlung</str> 
    <str name="fq">testfield:*2/hs/strahlung*</str> 
    <str name="rows">0</str> 
    <str name="facet">on</str> 
    <str name="wt">xml</str> 
    <str name="_">1463590654764</str> 
    </lst> 
</lst> 
<result name="response" numFound="68" start="0"> 
</result> 
<lst name="facet_counts"> 
    <lst name="facet_queries"/> 
    <lst name="facet_fields"> 
    <lst name="testfield"> 
     <int name="3/hs/strahlung/neutronen">44</int> 
     <int name="3/hs/strahlung/wirkung">37</int> 
     <int name="3/hs/strahlung/strahlensschutz">34</int> 
     <int name="3/hs/strahlung/exposition">22</int> 
     <int name="3/hs/strahlung/radioaktivitaet">22</int> 
     <int name="3/hs/strahlung/radiologisch">12</int> 
     <int name="3/hs/strahlung/strahlenart">7</int> 
    </lst> 
    </lst> 
    <lst name="facet_ranges"/> 
    <lst name="facet_intervals"/> 
    <lst name="facet_heatmaps"/> 
</lst> 
</response> 

在组合与facet.prefix 3/hs/strahlung有可能深入挖掘层次同义词的问题。