2014-10-21 2 views
0

Я относительно новичок в поиске elasticsearch и пытаюсь выполнить поиск, используя указанный ниже запрос в php, но я получаю сообщение об ошибке.Elasticsearch - использование запроса запроса запроса с предложением в форме массива

$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(); 

Это правильный способ сделать это. Может кто-нибудь сказать мне, как это написать. Я следую this example.

Вот вся ошибка:

(!) 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 
+0

вы можете получить сообщение об ошибке? – Ashalynd

ответ

0

я в конце концов вернулся к использованию запросов на основе завиток с PHP и он работал как шарм. Секрет в пользовательском bool-фильтре с обязательным и обязательным параметром, вложенным нечетким, как это, и совпадением запросов