elasticsearch:如果数组字段中至少有一个元素属于范围,则使用条件进行搜索
我有三份文件要查elasticsearch:如果数组字段中至少有一个元素属于范围,则使用条件进行搜索,search,elasticsearch,nested,nosql,Search,elasticsearch,Nested,Nosql,我有三份文件要查 { "_index": "test", "_type": "elem", "_id": "2", "_version": 1, "_score": 1, "_source": { "price": "[17,19,30]" } } , 及 当我质疑的时候 { "query" : { "filtered" : { "filter" : { "range" : { "price" :{
{
"_index": "test",
"_type": "elem",
"_id": "2",
"_version": 1,
"_score": 1,
"_source": {
"price": "[17,19,30]"
}
}
,
及
当我质疑的时候
{
"query" : {
"filtered" : {
"filter" : {
"range" : {
"price" :{
"gte":20,
"lte":25
}
}
}
}
}
}
响应不包含任何此元素,如何查询以获得准确的结果?
我去拿
`{
"_index": "test",
"_type": "elem",
"_id": "3",
"_version": 1,
"_score": 1,
"_source": {
"price": "[17,22,30]"
}
}
`因为22在[20,25]范围内,所以结果不佳。
请帮帮我。提前谢谢。您可以这样存储文档:
{
"prices": [
{
"price": 22
},
{
"price": 20
}
]
}
并使用以下命令进行查询:
{
"query" : {
"filtered" : {
"filter" : {
"range" : {
"prices.price" :{
"gte":20,
"lte":25
}
}
}
}
}
}
你能分享这个索引的映射吗?
“映射”:{“elem”:{“properties”:{“price”:{“type”:“double”}}}
这是映射@ArchitSaxenaI忘记了这个问题。不管怎样,我会回答的,尽管可能已经太晚了
{
"prices": [
{
"price": 22
},
{
"price": 20
}
]
}
{
"query" : {
"filtered" : {
"filter" : {
"range" : {
"prices.price" :{
"gte":20,
"lte":25
}
}
}
}
}
}