elasticsearch,sdk,Php,elasticsearch,Sdk" /> elasticsearch,sdk,Php,elasticsearch,Sdk" />

ElasticSearch php sdk简单查询不工作

ElasticSearch php sdk简单查询不工作,php,elasticsearch,sdk,Php,elasticsearch,Sdk,这是我在这里的第一个问题,我对通过php sdk进行的简单elasticsearch查询有一个问题,json示例: { "_id": "event:5569fbbdddc85", "_type": "event", "videos": {}, "status": "published", "owner": { "firstname": "Patricio", "lastname": "", "profilepicture": "http://pbs.twimg.com/profile

这是我在这里的第一个问题,我对通过php sdk进行的简单elasticsearch查询有一个问题,json示例:

{
"_id": "event:5569fbbdddc85",
"_type": "event",
"videos": {},
"status": "published",
"owner": {
  "firstname": "Patricio",
  "lastname": "",
  "profilepicture": "http://pbs.twimg.com/profile_images/581193413426544640/Q5aqMmPk_normal.jpg",
  "_id": "twitter:2383339241",
  "_type": "user",
  "updated": 1433008088365,
  "created": 1428439794713
  },
"max_age": "18",
"min_age": "18",
"max_invites": "5",
"min_invites": "2",
"updated": 1433009134942,
"created": 1433009134942
}
我需要做的是按所有者筛选。\u id,我正在这样做:

    $params['index'] = 'default';
    $params['type'] = 'event';
    $params['size'] = $limit;
    $params['from'] = $from;

    $params['body']['query']['match']['owner._id'] = $userId;

//  elasticsearch search query
    $res = \Es::search($params);
结果是没有过滤器。数据库中的所有事件都将返回

我完全按照文档进行操作,但是没有结果,显然我遗漏了一些东西


谢谢

您需要您的
\u id
字段
不进行分析
或使用
关键字
分析器进行分析,以便在ES索引时保持不变

另外,对于像您这样的查询,对于
\u id
,最好使用
类型的
过滤器
。我不是php开发人员,但从ES的角度来看,它应该是这样的:

      "_id": {
        "type": "string",
        "index": "not_analyzed"
      }
对于
\u id
,查询应为以下形式:

  "query": {
    "filtered": {
      "filter": {
        "term": {
          "owner._id": "twitter:2383339242"
        }
      }
    }
  }