gpt4 book ai didi

java - Apache Solr 查询结果不一致

转载 作者:行者123 更新时间:2023-12-01 05:43:30 33 4
gpt4 key购买 nike

我是 Apache Solr 的新手,并尝试使用搜索词针对名为“normalizedContents”且类型为“text”的字段进行查询。

所有搜索词都必须存在于该字段中。问题是,我得到的结果不一致。

例如,solr 索引只有一个文档,其标准化内容字段的值为“EDOUARD SERGE WILFRID EDOS0004 UNE Mention COMPLMENTAIRE”

我在 solr 的 Web 界面中尝试了这些查询:

  • normalizedContents:(edouard AND une) 返回结果
  • normalizedContents:(edouar* AND une) 返回结果
  • normalizedContents:(EDOUAR* AND une) 不返回任何内容
  • normalizedContents:(edouar AND une) 不返回任何内容
  • normalizedContents:(edouar* AND un) 返回结果(尽管没有“un”一词)
  • normalizedContents:(edouar* AND uned) 返回结果(尽管没有“uned”一词)

以下是 schema.xml 中规范化内容的声明:

<field name="normalizedContents" type="text" indexed="true" stored="true" multiValued="false"/>

因此,通配符和 AND 运算符不遵循预期的行为。我做错了什么?

谢谢。

最佳答案

默认情况下,字段类型 text 对内容进行词干提取 ( solr.SnowballPorterFilterFactory )。因此 'un' 和 'uned' 匹配 une。那么你可能没有solr.LowerCaseFilterFactory对查询和索引分析器进行过滤,因此 EDUAR* 不匹配。第四个不匹配,因为 edouard 不是 edouar。如果您想要精确匹配,则应将数据复制到另一个字段中,该字段的类型带有一组更有限的过滤器。例如。只有一个solr.WhitespaceTokenizerFactory

发布<fieldType name="text">您的架构中的部分可能有助于理解所有内容。

关于java - Apache Solr 查询结果不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6493986/

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