使用连字符进行Solr Web界面查询

时间:2013-09-01 11:13:33

标签: solr django-haystack solr4

我有一个由haystack创建的模式,用于索引Solr 4.3中的书籍和作者 执行搜索时,除了包含连字符的搜索词外,一切正常。

我知道你必须使用反斜杠来逃避它们,但即使使用solr web界面,我也无法找到正确的文档。

如下面的屏幕截图所示,有一位名为Ukiyo-E的作者可以使用 full_name :( ukiyo)找到。输入 full_name :( ukiyo-e) full_name :( ukiyo-e)时,我找不到任何内容。

searching ukiyo gives one match Ukiyo-E

修改

架构信息:

<fieldType name="edge_ngram" class="solr.TextField" positionIncrementGap="1">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory" />
    <filter class="solr.LowerCaseFilterFactory" />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front" />
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory" />
    <filter class="solr.LowerCaseFilterFactory" />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
  </analyzer>
</fieldType>
...
<field name="full_name" type="edge_ngram" indexed="true" stored="true" multiValued="false" />

分析结果 enter image description here

1 个答案:

答案 0 :(得分:3)

分别使用“分析”菜单分析您的术语,以进行索引和查询。具体来说,在索引和查询时间内应该有类似的文本处理例程(请参阅架构中​​的full_name字段)。如果您没有将查询“ukiyo-e”标记为2个术语ukiyoe,但在编制索引时将其标记化,则无法找到完整的术语ukiyo-e