gpt4 book ai didi

elasticsearch - 使用 Elastic Search 中的完成建议查询检查是否为空

转载 作者:行者123 更新时间:2023-11-29 02:56:00 24 4
gpt4 key购买 nike

我有一个现有查询,它为具有以下查询的邮政编码提供建议(我已经使用邮政编码将其硬编码为 T0L)

 "suggest":{
"suggestions":{
"text":"T0L",
"completion":{
"field": "postcode.suggest"
}
}
}

这工作正常,但它会搜索城市包含空值的一些结果。所以我需要过滤城市不为空的地址。

所以我遵循了 this 上的解决方案并准备这样的查询。

{
"query": {
"constant_score": {
"filter": {
"exists": {
"field": "city"
}
}
}
},
"suggest":{
"suggestions":{
"text":"T0L",
"completion":{
"field": "postcode.suggest"
}
}
}
}

但不幸的是,这并没有提供邮政编码包含 T0L 的所需地址,而是我得到的结果是邮政编码以 A1X 开头。所以我相信它正在查询城市所在的所有地址并忽略完成建议查询。你能告诉我错误在哪里吗?或者可能是如何正确编写它。

最佳答案

无法在查询时过滤掉建议,因为completion suggester 使用 FST(在索引时构建的特殊内存数据结构)进行闪电般的快速搜索。

但是您可以更改映射并添加 context对于你的建议者。上下文的基本思想,它也在索引时与 completion 字段一起填充,因此可以在查询时与 suggest 查询一起使用。

关于elasticsearch - 使用 Elastic Search 中的完成建议查询检查是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52277147/

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