使用Solrnet在Solr中引用和连字符查询返回错误的结果

时间:2013-06-04 09:43:06

标签: solr solrnet

我们使用solrnet对一组基于文本的文件进行索引和查询。当我们在双引号中使用搜索词并且搜索词是连字符时,我们需要针对特定​​搜索案例的帮助。我们正在使用StandardTokenizerFactory。

架构定义:

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

案例1:

  • SearchTerm:&#34; S-Video&#34;,quoted = true
  • Catalina日志:q = ContentSearch:(\&#34; S-Video \&#34;)
  • 返回的结果包含s和视频的匹配

案例2:

  • SearchTerm:&#34; S - Video&#34;,quoted = true,注意连字符周围的空格
  • Catalina日志:q =内容搜索:(&#34; \&#34; S + - +视频\&#34;&#34;)
  • 返回的结果仅包含S-Video的命中(连字符之前或之后没有空格)

案例2中的记录是期望的结果,但应该使用案例1中的查询检索。不确定我们做错了什么。

0 个答案:

没有答案