gpt4 book ai didi

lucene - 为什么queryString甚至在查询中添加关键字分析字段也不会给出任何结果

转载 作者:行者123 更新时间:2023-12-02 23:40:59 24 4
gpt4 key购买 nike

我怀疑查询如何搜索文档。

当我针对关键字分析字段使用精确查询“ 1234是什么?”搜索时,我没有任何结果。
但是,如果我针对雪球/标准分析字段搜索了“什么是”,那么我得到了一些结果,并且我还尝试了另一种方式来将空间转义到查询中,例如“ what \ is \ 1234?”,它也给出了一些结果。

默认情况下,query_string将使用哪种分析器,它是使用任何分析器转换用户查询还是使用用户提供的内容?

请在这里找到我的要点:https://gist.github.com/kirubar/6369034

最佳答案

查询字符串“什么是1234?”未能找到结果的原因不是分析器,而是QueryParser。
query_string使用Lucene query syntax。查询解析器会将该查询解释为三个单独的查询。也就是说

"query" : "what is 1234?"

等于:
"query" : "what OR is OR 1234?"

如果要执行短语查询,则需要将其括在引号中,例如(我相信您还需要将分析器设置为KeywordAnalyzer,因此该短语不会被标记化,再次阻止匹配):
"analyzer" : "keyword",
"query" : "\"what is 1234?\""

或者,更好的是,甚至不使用 query_string查询。相反,请使用 term查询,尤其是在关键字字段上查询时,例如:
"term" : { "message_keyword" : "what is 1234?" }

关于lucene - 为什么queryString甚至在查询中添加关键字分析字段也不会给出任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18495097/

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