2

Я установил эластичный поиск, а также установил плагин ingest на моем локальном сервере. Эластичный двигатель работает хорошо. Я создал следующие задачи:Ingest Search (Elastic Search) не работает в PHP

  1. отображения
  2. индексирование

Теперь я застрял в поиске, он не работает. Он возвращает нулевой массив. Вот мой код в PHP:

public function ingest_processor_searching($query) 
{ 
    $client = $this->client; 
    $params = [ 
     'index' => 'ingest_index', 
     'type' => 'attachment', 
     'body' => [ 
      'query' => [ 
       'match' => [ 
        'textField' => $query, 
       ] 
      ], 
     ], 
    ]; 

    $response = $client->search($params); 
    return $response; 
} 

Результат:

{ 
"took": 7, 
"timed_out": false, 
"_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
}, 
    "hits": { 
    "total": 0, 
    "max_score": null, 
    "hits": [] 
} 
} 

Но у меня есть данные для ГЭТ http://localhost:9200/ingest_index/attachment/2

{ 
    "_index": "ingest_index", 
    "_type": "attachment", 
    "_id": "2", 
    "_version": 1, 
    "found": true, 
    "_source": { 
    "file_path": "/Users/selimreza/Sites/haber_dev/public/uploads/files/bower.txt", 
    "attachment": { 
     "content_type": "text/plain; charset=ISO-8859-1", 
     "language": "en", 
     "content": "Welcome to Dhaka", 
     "content_length": 18 
    }, 
    "textField": "V2VsY29tZSB0byBEaGFrYQo=" 
    } 
} 

Что такое ошибка, которую я сделал?

+0

Если вы могли бы показать свои отображения? – Kulasangar

ответ

0

Попробуйте удалить , с вашего 'textField' => $query, так как вы не согласны с несколькими значениями. Если он по-прежнему не работает, попробуйте использовать term запрос вместо match:

$params = [ 
     'index' => 'ingest_index', 
     'type' => 'attachment', 
     'body' => [ 
      'query' => [ 
       'term' => [ <-- have this 
        'textField' => $query <-- try removing the comma 
       ] 
      ], 
     ], 
    ];