Я установил ONGR ElasticSearchBundle в моем проекте Symfony. Для поиска в индексе с названиями и описаниями компаний в качестве имени индекса используются компании. Это выглядит так:
"mappings": {
"_doc": {
"properties": {
"id": {"type": "long"},
"entityid": {"type": "long"},
"entityname": {"type": "keyword"},
"name": {"type": "text"},
"street": {"type": "text"},
"city": {"type": "text"},
"zip": {"type": "long"},
"ziptext": {"type": "keyword"},
"regionisocode": {"type": "keyword"},
"desc": {"type": "text"},
"branch": {"type": "text"},
"branchid": {"type": "long"},
"foundingyear": {"type": "date"}
}
}
}
Затем я использовал консольный инструмент для создания документа.
/**
* Company
*
* @ES\Document()
*/
class Company
{
/**
* @var string
*
* @ES\Property(type="long", options={"index"="not_analyzed"})
*/
private $id;
/**
* @var string
*
* @ES\Property(type="long", options={"index"="not_analyzed"})
*/
private $entityid;
/**
* @var string
*
* @ES\Property(type="keyword", options={"index"="not_analyzed"})
*/
private $entityname;
...
Кажется, до сих пор это работает. Соединение с хостом ElasicSearch работает, но я не получаю результат поиска, даже если я выполняю MatchAllQuery (). Я предполагаю, что это проблема сопоставления? Может, у кого-нибудь есть подсказка?
С уважением