Elasticsearch - 使用建议者和其他过滤器搜索条件的最佳方法是什么?

时间:2015-11-17 02:50:58

标签: elasticsearch

如何从关系数据库转换查询条件,如:

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无效,因为gradecity选项太多。

1 个答案:

答案 0 :(得分:1)

这个查询怎么样?

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "city": "Munich"
          }
        },
        {
          "term": {
            "grade": {
              "value": "2"
            }
          }
        },
        {
          "match_phrase_prefix": {
            "name": "abc"
          }
        }
      ]
    }
  }
}

我认为您可以使用match_phrase_prefix

模拟sql

这有帮助吗?