简体   繁体   English

Elasticsearch-使用两个查询字符串查询和数组形式的建议

[英]Elasticsearch - Using both query string query with suggest in array form

I am relatively new to elasticsearch and am trying to perform a search using the below query in php but I am getting an error. 我是Elasticsearch的新手,正在尝试使用php中的以下查询执行搜索,但出现错误。

$query = array(
    'query' => array(
        'query_string' => array(
            'query' => "(name_en:cook)^2 OR (name_en:door) AND (_id:11)",
        )
    ),
    'suggest' => array(
        'text' => "unganda",
        'term'=>array(
            "field"=> "name_en",
            "max_edits"=> 2,
            "sort"=> "score",
            "suggest_mode"=>"missing",
            "prefix_length"=> 0,
            "min_word_length"=> 2
        )
    )
);
$response = $client->request($path, \Elastica\Request::GET, $query);
$responseArray = $response->getData();

// Loop through the results
return $responseArray;
diE();

Is this the correct way of doing it. 这是正确的方法吗? Can someone tell me how to write this. 有人可以告诉我怎么写这个。 I am following this example . 我正在关注这个例子

Here is the whole error: 这是整个错误:

( ! ) Fatal error: Uncaught exception 'Elastica\Exception\ResponseException' with message 
                    'SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; 
                      shardFailures {[NBYNTLSbT1iIRv98Oxvbmw][shops][3]: 
                      SearchParseException[[shops][3]: 
                        query[(
                          (_all:name_en _all:uganda)^2.0) 
                          (_all:name_en _all:grocery_shop)],from[-1],size[-1]: 
                        Parse Failure [Failed to parse source [
                          { 
                            "query": { 
                              "query_string": { 
                                "query":"(name_en=>uganda)^2 OR (name_en=>grocery_shop)"
                              }
                            },
                            "suggest": { 
                              "text": "grocery_shop",
                              "term": { 
                                "field": "name_en"
                              }
                            }
                          }]]];
                        nested: ElasticsearchIllegalArgumentException[[suggest] does not support [field]]; }{[NBYNTLSbT1iIRv98Oxvbmw][shops][4]: 
                        SearchParseException[[shops][4]: 
                          query[(
                            (_all:name_en _all:uganda)^2.0) 
                            (_all:name_en _all:grocery_shop)],from[-1],size[-1]: 
                          Parse Failure [Failed to parse source [
                            {
                              "query": {
                                "query_string": {
                                  "query":"(name_en=>uganda)^2 OR (name_en=>grocery_shop)"
                                }
                              },
                              "suggest": {
                                "text": "grocery_shop",
                                "term": {
                                  "field": "name_en"
                              }
                            }
                            }]]]; 
                          nested: Elasticsea in C:\wamp\www\infomoby\vendor\ruflin\elastica\lib\Elastica\Transport\Http.php on line 146
( ! ) Elastica\Exception\ResponseException: 
                    SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; 
                    shardFailures {[NBYNTLSbT1iIRv98Oxvbmw][shops][3]: 
                    SearchParseException[[shops][3]: 
                    query[(
                      (_all:name_en _all:uganda)^2.0) 
                      (_all:name_en _all:grocery_shop)],from[-1],size[-1]: 
                      Parse Failure [Failed to parse source [
                        {
                          "query": {
                            "query_string": {
                              "query":"(name_en=>uganda)^2 OR (name_en=>grocery_shop)"
                            }
                          },
                          "suggest": {
                            "text": "grocery_shop",
                            "term": {
                              "field": "name_en"
                            }
                          }
                        }]]]; 
                    nested: ElasticsearchIllegalArgumentException[[suggest] does not support [field]]; }{[NBYNTLSbT1iIRv98Oxvbmw][shops][4]: 
                    SearchParseException[[shops][4]: 
                    query[(
                      (_all:name_en _all:uganda)^2.0) 
                      (_all:name_en _all:grocery_shop)],from[-1],size[-1]: 
                      Parse Failure [Failed to parse source [
                        {
                          "query": {
                            "query_string": {
                              "query":"(name_en=>uganda)^2 OR (name_en=>grocery_shop)"
                            }
                          },
                          "suggest": {
                            "text": "grocery_shop",
                            "term": {
                              "field": "name_en"
                            }
                          }
                        }]]]; 
                    nested: ElasticsearchIllegalArgumentException[[suggest] does not support [field]]; }{[NBYNTLSbT1iIRv98Oxvbmw][shops][1]: 
                    SearchParseException[[shops][1]: 
                    query[(
                      (_all:name_en _all:uganda)^2.0) 
                      (_all:name_en _all:grocery_shop)],from[-1],size[-1]: 
                      Parse Failure [Failed to parse source [
                        {
                          "query": {
                            "query_string": {
                              "query":"(name_en=>uganda)^2 OR (name_en=>grocery_shop)"
                            }
                          },
                          "suggest": {
                            "text": "grocery_shop",
                            "term": {
                              "field": "name_en"
                            }
                          }
                        }]]]; 
                    nested: ElasticsearchIllegalArgumentException[[suggest] does not support [field]]; }{[NBYNTLSbT1iIRv98Oxvbmw][shops][2]: 
                    SearchParseException[[shops][2]: 
                    query[(
                      (_all:name_en _all:uganda)^2.0) 
                      (_all:name_en _all:grocery_shop)],from[-1],size[-1]: 
                      Parse Failure [Failed to parse source [
                        {
                          "query": {
                            "query_string": {
                              "query":"(name_en=>uganda)^2 OR (name_en=>grocery_shop)"
                            }
                          },
                          "suggest": {
                            "text": "grocery_shop",
                            "term": {
                              "field": "name_en"
                            }
                          }
                        }]]]; 
                    nested: ElasticsearchIllegalArgumentException[[suggest] does not support [field]]; }{[NBYNTLSbT1iIRv98Oxvbmw][shops][0]: 
                    SearchParseException[[shops][0]: 
                    query[(
                      (_all:name_en _all:uganda)^2.0) 
                      (_all:name_en _all:grocery_shop)],from[-1],size[-1]: 
                      Parse Failure [Failed to parse source [
                        {
                          "query": {
                            "query_string": {
                              "query":"(name_en=>uganda)^2 OR (name_en=>grocery_shop)"
                            }
                          },
                          "suggest": {
                            "text": "grocery_shop",
                            "term": {
                              "field": "name_en"
                            }
                          }
                        }]]]; 
                    nested: ElasticsearchIllegalArgumentException[[suggest] does not support [field]]; }] in C:\wamp\www\shops_site\vendor\ruflin\elastica\lib\Elastica\Transport\Http.php on line 146

I eventually reverted to using curl based queries with php and it worked like a charm. 最终,我最终恢复了对PHP使用基于curl的查询的功能,它的魅力十足。 The secret in to user bool filter with must and should option nesting fuzzy like this and match queries 用户布尔过滤器的秘密,必须和应该这样嵌套模糊并匹配查询

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM