gpt4 book ai didi

Solrj 查询 - 首先获取最相关的记录

转载 作者:行者123 更新时间:2023-12-04 05:13:55 27 4
gpt4 key购买 nike

我在 Solr 4.0 中有一些文件.我希望首先显示最相关的记录,然后显示不太相关的记录。

例如,我有 3 个文件,标题如下 -

  • 收入分配政策
  • 收入分配与经济政策
  • 发展中国家的收入分配政策

  • 现在,当我查询类似 q=title:Income Distribution Policy 的内容时,

    我希望文件编号 3 首先显示(因为前 3 个单词是完全匹配的)然后我希望文件编号 1 显示第二个(除了“Towards”其余匹配)然后我想要文件编号 2出现(因为中间有一些词)。

    我的 schema.xml看起来像这样 -
    <types>
    <fieldType name="search" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="German2" />
    <filter class="solr.PorterStemFilterFactory"/>
    </analyzer>
    <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="German2" />
    <filter class="solr.PorterStemFilterFactory"/>
    </analyzer>
    </fieldType>
    </types>

    <fields>
    <field name="title" type="search" indexed="true" stored="true"/>
    </fields>

    编辑 1 调试输出
    "rawquerystring": "title:Income Distribution Policy",
    "querystring": "title:Income Distribution Policy",
    "parsedquery": "title:incom title:distribut title:polici",
    "parsedquery_toString": "title:incom title:distribut title:polici"

    编辑 2 修改了 fieldType

    我使用了以下组合,但输出仍然相同。
  • StandardTokenizerFactory - autoGeneratePhraseQueries(不存在) - PorterStemFilterFactory。
  • StandardTokenizerFactory - autoGeneratePhraseQueries="true"- PorterStemFilterFactory。
  • StandardTokenizerFactory - autoGeneratePhraseQueries(不存在)。
  • StandardTokenizerFactory - autoGeneratePhraseQueries="true"。
  • WhitespaceTokenizerFactory - autoGeneratePhraseQueries(不存在) - PorterStemFilterFactory。
  • WhitespaceTokenizerFactory - autoGeneratePhraseQueries="true"- PorterStemFilterFactory。
  • WhitespaceTokenizerFactory - autoGeneratePhraseQueries(不存在)。
  • WhitespaceTokenizerFactory - autoGeneratePhraseQueries="true"。
  • 最佳答案

    如果您不按任何其他排序,则按相似性/相关性排序。因此,如果您没有以正确的顺序获得结果,您可能需要考虑如何分配权重以及您正在使用哪些查询解析器。

    我假设您正在使用 eDismax 和标题字段的提升。另外看看毫米 (最小匹配)和 pf (短语字段)用于提升。

    您可能还想使用在您的 fieldType 上设置的 autoGeneratePhraseQueries 字段进行测试。

    当然还有 debugQuery=true 查询将帮助您了解正在发生的事情。您可能会发现还添加了 debug.explain.structured=true 在您尝试读取调试输出的前几次时可能很有用。

    关于Solrj 查询 - 首先获取最相关的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14554850/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com