0

我们使用 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:

  • 搜索词:“S-Video”,引用 = true
  • Catalina 日志:q=ContentSearch:(\"S-Video\")
  • 返回的结果包含 s 和 video 的命中

案例二:

  • SearchTerm:“S - Video”,quoted = true,注意连字符周围的空格
  • Catalina 日志:q=ContentSearch:("\"S++-+Video\"")
  • 返回的结果仅包含 S-Video 的命中(连字符前后没有空格)

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

4

0 回答 0