Range 没有正确过滤我的文档
Range does not filter my documents properly
我是一种迷茫。我的弹性搜索文档中有一个 category_id,例如:
[
{
"id": "80029",
"categoryId": "43227",
"channelId": "54322",
"channelName": "xxxxx2222",
现在在elastic search中,我根据category id的范围搜索如下:
{
"query": {
"range": {
"category_id": {
"lt": 1000032270000
}
}
}
}
我什么也没得到,但很明显 1000032270000 大于 43227,我希望得到记录。更令人惊讶的是,当我将 1000032270000 更改为 9000032270000 时,我得到了结果。那么我的问题是什么?如何正确使用过滤我的文档? (我正在寻找 4000 小于 10000 的所有文件)
假设这是因为字符串映射。如果不是这种情况,我将进行编辑。
确保将 "category_id" 的映射设置为数字。尝试将其作为该字段的映射(您需要在摄取文档之前使用映射重新创建索引,或者重新索引到另一个索引)
PUT {YOUR_INDEX}
{
"mappings" :{
"{YOUR_TYPE}":{
"properties": {
"category_id": {
"type": "long"
}
}
}
}
}
我是一种迷茫。我的弹性搜索文档中有一个 category_id,例如:
[
{
"id": "80029",
"categoryId": "43227",
"channelId": "54322",
"channelName": "xxxxx2222",
现在在elastic search中,我根据category id的范围搜索如下:
{
"query": {
"range": {
"category_id": {
"lt": 1000032270000
}
}
}
}
我什么也没得到,但很明显 1000032270000 大于 43227,我希望得到记录。更令人惊讶的是,当我将 1000032270000 更改为 9000032270000 时,我得到了结果。那么我的问题是什么?如何正确使用过滤我的文档? (我正在寻找 4000 小于 10000 的所有文件)
假设这是因为字符串映射。如果不是这种情况,我将进行编辑。
确保将 "category_id" 的映射设置为数字。尝试将其作为该字段的映射(您需要在摄取文档之前使用映射重新创建索引,或者重新索引到另一个索引)
PUT {YOUR_INDEX}
{
"mappings" :{
"{YOUR_TYPE}":{
"properties": {
"category_id": {
"type": "long"
}
}
}
}
}