如何用Elasticsearch实现类似SQL中的IN查询实例

Posted Hail Hydra

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Elasticsearch实现类似SQL中的IN查询实例相关的知识,希望对你有一定的参考价值。

我想实现类似如下sql语句的效果:

select * from table1 where rw_id in (\'7a482589-e52e-0887-4dd5-5821aab77eea\',\'c68ace46-1c07-fccf-1cb6-57d4e77e40a2\',\'3c9263d2-c44b-a9fd-155e-57aaf783ed58\',\'69b087df-eb62-3e70-2cc0-582ec84a561b\')

 

相应的ES查询应该写为:

 

$v 即为 rw_id的集合,GET /_search

 

{
    "query": {
        "filtered": {
            "filter": {
                "or" :{
                    "term": { "rw_id": "7a482589-e52e-0887-4dd5-5821aab77eea" },
                    "term": { "rw_id": "c68ace46-1c07-fccf-1cb6-57d4e77e40a2" }, 
                    "term": { "rw_id": "3c9263d2-c44b-a9fd-155e-57aaf783ed58" },
                     "term": { "rw_id": "69b087df-eb62-3e70-2cc0-582ec84a561b" }
                     } 
                } 
            }
         }
}            

 

以上是关于如何用Elasticsearch实现类似SQL中的IN查询实例的主要内容,如果未能解决你的问题,请参考以下文章

ElasticsearchElasticsearch如何实现 SQL语句中 Group By 和 Limit 的功能

sql2000 如何用触发器实现级联删除

如何用Elasticsearch实现WordPDF,TXT文件的全文内容检索?

如何用SQL语句查询Excel数据

delphi adodataset如何用如sql语句 增、删、改、查记录 类似于下面这样,但adodataset我不知道怎么弄

如何用RichTextBox实现选中文字的居中、左、右对齐?