【问题标题】:give importance to documents which contains the word proximity + solr + sunspot重视包含单词proximity + solr + sunspot的文档
【发布时间】:2015-06-10 11:06:22
【问题描述】:

我正在开发基于 Apache Solr 搜索引擎的 Rails 应用程序,我们正在使用 Sunspot gem。但是我面临一个问题,如果我搜索查询house rent,那么它会通过使用and query 给我数千个结果。但是我得到的结果并不相关。

我期待包含彼此靠近的房屋和租金字样的文件,这些文件应该排在最前面。但目前包含更多房屋和租金文件的文件排在首位。但是没有任何单词接近度。

我的 schema.xml 包含以下定义:

<fieldType name="text" class="solr.TextField" omitNorms="false">
  <analyzer>
    <tokenizer class="solr.PatternTokenizerFactory" pattern="[\s,\.;\(\)]+"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
    <charFilter class="solr.HTMLStripCharFilterFactory"/>
    <filter class="solr.PorterStemFilterFactory"/>
  </analyzer>
</fieldType>

要实现这一点,需要做哪些改变?还是需要为此添加任何过滤器?

【问题讨论】:

  • 该字段使用的字段类型是什么?你能分享一下 Schema.xml 吗?
  • 我使用了文本字段
  • 添加“文本”字段的详细信息输入您的问题,回答您的问题会很好......
  • 尝试在您的过滤器中使用这个 solr.ShingleFilterFactory 并在 solr 分析工具中进行分析...wiki.apache.org/solr/…
  • @AbhijitBashetti 这对我不起作用...请提出其他解决方案

标签: ruby-on-rails solr sunspot-solr solr-schema


【解决方案1】:

你可以试试这个

<fieldType name="shingleString" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
      <analyzer type="index">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.ShingleFilterFactory" outputUnigrams="true" outputUnigramIfNoNgram="true" maxShingleSize="99"/>
        <filter class="solr.PositionFilterFactory" />
      </analyzer>
    </fieldType>

【讨论】:

  • 无法使用上述解决方案。得到相同的结果
  • 能否请您详细说明...您的索引文本是什么,搜索文本是什么?它可以减轻我们的任务...
  • 我的搜索文本是 housing rent ,我得到了结果,但结果顺序不正确,第一个文档包含两个单词,但字间距更多,我的第 7 个文档包含 house租金和有0字差。所以我希望我的第 7 个文档应该出现在第一个文档之上。
【解决方案2】:

使用短语字段并增强它们,或者您可以尝试诸如 "house rent"~5 之类的术语增强

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 2014-05-12
    • 1970-01-01
    • 2015-04-24
    相关资源
    最近更新 更多