如何从关系数据库转换查询条件,如:
select ... from ... where name like 'ABC%' and grade = 3 and city = 'Munich'
到ElasticSearch查询字符串?
name like 'ABC%'
是前缀搜索,我更喜欢使用Completion Suggester。虽然似乎无法向Completion Suggester
添加其他过滤器。如何处理grade = 3 and city = 'Munich'
条件?
Context Suggester无效,因为grade
和city
选项太多。
答案 0 :(得分:1)
这个查询怎么样?
{
"query": {
"bool": {
"must": [
{
"match": {
"city": "Munich"
}
},
{
"term": {
"grade": {
"value": "2"
}
}
},
{
"match_phrase_prefix": {
"name": "abc"
}
}
]
}
}
}
我认为您可以使用match_phrase_prefix
模拟sql这有帮助吗?