我的文档中有3个字段:
我已使用以下代码在索引(文章)中插入了几条记录:
$es = Elasticsearch\ClientBuilder::create()->build();
$params = [
'index'=>'articles',
'type' => 'article'
];
for ($i=1; $i<50000; $i++) {
$params['body'] = [
'id' => $i,
'title'=>'some title '.$i,
'txt'=>'some text '.$i
];
$response = $es->index($params);
}
现在我想检索id > 20000
的记录。
如何在Elasticsearch中执行这样的过滤器?
答案 0 :(得分:1)
首先,您需要确保将id
字段保存为long
,您可以通过执行对<ES_HOST>:9200/articles/article/_mapping
的GET请求来执行此操作,
然后,您可以运行此查询以获取相关ID:
{
"query": {
"bool": {
"filter": {
"range": {
"id": {
"gt": 20000
}
}
}
}
}
}