我有点困惑。我的弹性搜索文档中有一个category_id,如:
[
{
"id": "80029",
"categoryId": "43227",
"channelId": "54322",
"channelName": "xxxxx2222",
现在我在弹性搜索时根据类别ID的范围进行搜索,如下所示:
{
"query": {
"range": {
"category_id": {
"lt": 1000032270000
}
}
}
}
我什么也没收到,但显然1000032270000大于43227,我希望能够恢复记录。更令人惊讶的是,当我将1000032270000更改为9000032270000时,我得到了结果。那么我的问题是什么?如何正确使用过滤我的文件? (我正在寻找像所有文件一样磨损4000和不到10000)
答案 0 :(得分:1)
假设这是因为字符串映射。如果不是这样,我会编辑。
确保您拥有" category_id"的映射。设置为数字。尝试将此作为该字段的映射(您需要在提取文档之前使用映射重新创建索引,或者重新索引到另一个索引)
PUT {YOUR_INDEX}
{
"mappings" :{
"{YOUR_TYPE}":{
"properties": {
"category_id": {
"type": "long"
}
}
}
}
}