该示例摘自Elasticsearch参考:https://www.elastic.co/guide/en/elasticsearch/reference/5.3/nested.html
我的索引与此类似。唯一的区别是user.first和user.last是 keyword 类型,所以我可以在它们上使用过滤器。
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"user": {
"type": "nested"
}
}
}
}
}
PUT my_index/my_type/1
{
"group" : "fans",
"user" : [
{
"first" : "John",
"last" : "Smith"
},
{
"first" : "Alice",
"last" : "White"
}
]
}
在两种情况下,我应该使用什么查询来获取与上述数组匹配的文档(正好两项,一项是John Smith,一项是Alice White):
答案 0 :(得分:0)
搜索后,实现订单无关紧要的最佳方法是:索引计数字段。
请参阅:Elasticsearch Equal Exactly
原因是:
在Elasticsearch中,没有专用的数组类型。默认情况下,任何字段都可以包含零个或多个值,但是,数组中的所有值必须具有相同的数据类型。