【问题标题】:solr config changes omitTermFreqAndPositions="true"solr 配置更改 omitTermFreqAndPositions="true"
【发布时间】:2018-03-13 05:02:31
【问题描述】:

当我设置 omitTermFreqAndPositions="true" 时,我使用的是 solr 版本 6.3,我收到以下错误 "msg":"field \"product_name\" was indexed without position data; cannot run PhraseQuery (phrase=product_name :\"basmati rice\")",它适用于单个单词。请帮忙

【问题讨论】:

    标签: solr


    【解决方案1】:

    您要求的查询需要存在位置(即短语查询)- 短语需要知道标记的位置才能确定它们是否在彼此之后/靠近)。

    当您要求 Solr 删除位置信息时,您是在告诉它“不要存储位置信息,无论如何我都不会使用它”。然后你尝试使用它,Solr 说“你不能这样做,你要求我不要存储该信息”。

    您必须删除 omitTermFreqAndPositions 并重新索引您的内容,以便词组搜索(以及任何其他需要位置信息的功能)起作用。

    【讨论】:

    • 非常感谢您的澄清,但我的问题还没有解决,我之前的问题“stackoverflow.com/questions/41972082/…”您回复设置 omitTermFreqAndPositions =true 请查看之前的问题。
    • 正如我在上一个答案中所说,该答案是有效的如果您不依赖或不使用职位。看来您需要职位,因此,如果您想避免词频得分,您可能会have to create a custom similarity class that ignores termfreqs。
    • 感谢先生的宝贵建议。你能建议在哪里添加这个类吗?除了schema.xml之外,我从未在任何文件中更改过。 public class CustomSimilarity extends DefaultSimilarity { //多次出现的术语不会影响其相关性 @Override public float tf(float freq) { return 1; } }
    猜你喜欢
    • 1970-01-01
    • 2013-07-21
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多