我是Elasticsearch的新手.我不认为我完全理解查询和过滤器的概念.在我的情况下,我只想使用过滤器,因为我不想使用像评分这样的高级功能.
如何将以下SQL语句转换为elasticsearch查询?
SELECT * FROM advertiser
WHERE company like '%com%'
AND sales_rep IN (1,2)
Run Code Online (Sandbox Code Playgroud)
到目前为止我所拥有的:
curl -XGET 'localhost:9200/advertisers/advertiser/_search?pretty=true' -d '
{
"query" : {
"bool" : {
"must" : {
"wildcard" : { "company" : "*com*" }
}
}
},
"size":1000000
}'
Run Code Online (Sandbox Code Playgroud)
如何在sales_rep字段上添加OR过滤器?
谢谢
在“必须”子句之后添加“应该”子句。在布尔查询中,默认情况下必须匹配一个或多个should 子句。实际上,您可以将“minimum_number_should_match”设置为任何数字,请查看bool 查询文档。
对于你的情况,这应该有效。
"should" : [
{
"term" : { "sales_rep_id" : "1" }
},
{
"term" : { "sales_rep_id" : "2" }
}
],
Run Code Online (Sandbox Code Playgroud)
同样的概念也适用于布尔过滤器。只需将“查询”更改为“过滤”即可。bool 过滤器文档在这里。
| 归档时间: |
|
| 查看次数: |
2324 次 |
| 最近记录: |