elasticsearch 在弹性搜索中使用完成建议查询检查NOTNULL
我有一个现有的查询,它为邮政编码提供建议,查询如下(我用邮政编码硬编码为T0L) 这很好,但它会搜索城市中包含空值的某些结果。所以我需要过滤城市不为空的地址 因此,我遵循解决方案,准备了如下查询
elasticsearch 在弹性搜索中使用完成建议查询检查NOTNULL,
elasticsearch,curl,elastic-stack,
elasticsearch,Curl,Elastic Stack,我有一个现有的查询,它为邮政编码提供建议,查询如下(我用邮政编码硬编码为T0L) 这很好,但它会搜索城市中包含空值的某些结果。所以我需要过滤城市不为空的地址 因此,我遵循解决方案,准备了如下查询 { "query": { "constant_score": { "filter": { "exists": { "field": "city" } } } }, "suggest":{ "suggestio
{
"query": {
"constant_score": {
"filter": {
"exists": {
"field": "city"
}
}
}
},
"suggest":{
"suggestions":{
"text":"T0L",
"completion":{
"field": "postcode.suggest"
}
}
}
}
但不幸的是,这并没有给出邮政编码包含T0L的所需地址,相反,我得到的结果是邮政编码以A1X开头。因此,我认为它正在查询城市所在的所有地址,而忽略了完成建议查询。你能告诉我哪里错了吗。或者可能是如何正确书写 无法在查询时过滤掉建议,因为
完成
建议者使用FST(在索引时构建的特殊内存数据结构)进行闪电般快速的搜索
但您可以更改映射并为建议者添加。上下文的基本思想是,它也在索引时与
完成
字段一起填充,因此可以在查询时与建议
查询一起使用。好的,明白了。我想一旦我的应用程序被获取,我就会处理它的空结果。谢谢。
{
"query": {
"constant_score": {
"filter": {
"exists": {
"field": "city"
}
}
}
},
"suggest":{
"suggestions":{
"text":"T0L",
"completion":{
"field": "postcode.suggest"
}
}
}
}