Я использую ONGR ElasticSearchBundle в моем проекте Symfony (предварительно я использую только клиент ES-PHP). Я буду искать существующий указатель с названиями и описаниями компаний, указатель названий компаний. Это выглядит так:
"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;
...
Когда я меняю аннотацию на:
/**
* Company
*
* @ES\Document(type="_doc")
*/
тогда Поиск работает нормально, но тогда я не могу выполнить какие-либо команды композитора, потому что я получаю эту ошибку:
[RuntimeException]An error occurred when executing the "'cache:clear --no-warmup'" command:[Symfony\Component\DependencyInjection\Exception\ServiceNotFoundExcepton] The service "company_search_service" has a dependency on a non-existent service "es.manager.default.company".
Я обнаружил проблему в пакете на GitHub , но прошло более четырех лет, и она закрыта.
Без аннотации @ES\Document(type="_doc")
я не могу получить доступ к индексу. Может быть, у кого-то есть предложение?
Заранее спасибо
Я использую Symfony 2.8 и ONGR / Elastic Bundle 5.2.4