使用PHP更正ElasticSearch的params

时间:2015-10-26 23:11:53

标签: php elasticsearch

我正在尝试使用ElasticSearch和PHP进行Google搜索。我一直在阅读ElasticSearch一书,我想我应该使用simple_query_string查询类型,它可以从搜索框中获取关键字(或短语)并尝试查找所有输入的术语。

我在我的项目中使用PHP ElasticSearch库,在连接到我的服务器后,我试图将$ client->搜索($ params)传递给我的搜索以返回结果。

我将此作为我的params数组

$params =
            [
                'index' => 'letsmeetup',
                'type' => 'person',
                'body' =>
                    [
                       'query' =>
                            [
                                'simple_query_string' =>
                                [
                                    'query' => $keywords,
                                    'fields' => [
                                        "first_name","last_name","bio","username","email_address","interests","skills"
                                    ]
                                ]
                            ]
                    ]
            ];

我使用了像'喜欢php的人'这样的短语,我得到了结果。当我得到正确的结果时,我尝试了“实时网络”(这是我的生物)。

问题是,当我尝试'Er'时,知道有一个“Erin”或'Neo'的第一个名字,我的生物中有“neo4j”,它没有返回任何结果。我的params数组是否正确?

1 个答案:

答案 0 :(得分:0)

您需要使用通配符进行此类查询

{
  "query": {
    "query_string": {
      "fields": [ "first_name","last_name","bio","username","email_address","interests","skills"],
      "query": "Er*"
    }
  }
}

这将匹配" Erin"," Eric","错误"等等。 您可以在此处找到有关查询字符串语法和通配符的更多信息。 https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax

我希望这有帮助!