在ElasticSearch中索引的数组中搜索

时间:2014-07-25 07:57:42

标签: php elasticsearch

我已将ElasticSearch中的文档编入索引,其中包含如下数组:

{
    "student": "John",
    "sport": "Soccer",
    "match": 
    {
        "eventType": "League",
        "date": "2013-12-31T11:00:00.000Z"
    }
}

我需要执行查询,例如搜索所有联赛(即doc["match"]["eventType"] == "League"

我正在使用ElasticSearch-PHP api 1.1.0并尝试查询,但没有成功:

$params['body']['query']['match']['match']['eventType'] = 'League';

我也尝试过:

$params['body']['query']['match']['match']->eventType = 'League';

进行此类搜索的正确方法是什么?文档没有这样的例子。

2 个答案:

答案 0 :(得分:0)

你能把这个JSON转换成php对象吗?

{
    "query": {
        "match": {
           "match.eventType": "League"
        }
    }
}

我认为这将完成工作。

答案 1 :(得分:-1)

作为第一步,尝试为您的足球“比赛”使用不同的名称,并将其称为“游戏”以防止与使用“匹配”操作发生冲突。