【问题标题】:Solr Search - Hyphenated wordsSolr 搜索 - 连字词
【发布时间】:2014-12-29 15:48:18
【问题描述】:

我正在寻找一种可以精确搜索场景的方法:

说一句话:'堆栈溢出'

我想搜索具有完全“堆栈”和“-”和“溢出”而不是 OR 的文档。

根据我的阅读理解,单词被拆分为“stack-overflow”->“stack”,“overflow”。

我们可以保留索引上的原始单词吗?

我尝试了这里提到的解决方案,但没有奏效:Rails sunspot-solr - words with hyphen

也试过这个代码:

<fieldType name="autosuggest" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory"
            generateWordParts="1"
            splitOnNumerics="1"
            catenateWords="1"
            catenateAll="1"
            preserveOriginal="1"
            />
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25" />
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory"
            generateWordParts="1"
            splitOnNumerics="1"
            catenateWords="0"
            catenateAll="0"
            preserveOriginal="1"
            />
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

感谢任何帮助或指导。

【问题讨论】:

标签: ruby-on-rails solr


【解决方案1】:

您可以简单地将查询写在双引号中(“stack-overflow”)。正如您已经提到的那样,这可以完成保留原始索引时间的工作。

【讨论】:

    猜你喜欢
    • 2015-11-02
    • 2011-02-07
    • 2014-02-04
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多