【发布时间】:2015-09-03 14:05:38
【问题描述】:
我有以下数据集:
{
"_index": "myIndex",
"_type": "myType",
"_id": "220005",
"_score": 1,
"_source": {
"id": "220005",
"name": "Some Name",
"type": "myDataType",
"doc_as_upsert": true
}
}
像这样进行直接匹配查询:
GET typo3data/destination/_search
{
"query": {
"match": {
"name": "Some Name"
}
},
"size": 500
}
将返回数据就好了:
"hits": {
"total": 1,
"max_score": 3.442347,
"hits": [...
但是做一个 OR 查询(我不确定哪种语法是正确的,第一个语法取自 elasticsearch 文档,第二个是从另一个具有相同版本的项目中提取的有效查询):
GET typo3data/destination/_search
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"or": {
"filters": [
{
"term": {
"name": "Some Name"
}
}
]
}
}
}
},
"size": 500
}
或
{
"query":
{
"match_all": {}
},
"filter":
{
"or":
[
{ "term": { "name": "Some Name"} },
{ "term": { "name": "Some Other Name"} }
]
},
"size": 1000
}
不返回任何内容。
名称字段的映射是:
"name": {
"type": "string",
"index": "not_analyzed"
}
Elasticsearch 版本是 1.4.4。
【问题讨论】:
标签: elasticsearch