使用ONGR ES-Bundle运行“ composer update”时出错

时间:2019-06-07 15:30:42

标签: elasticsearch ongr

我在我的Symfony项目中运行ONGR ElasticSearchBundle(大概只使用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

1 个答案:

答案 0 :(得分:0)

我不知道它是否仍然有用,但是失败的服务是您的文档的存储库服务。之所以失败,是因为您可能在某个地方需要它。 通过将经理服务名称(es.manager.default)附加类型名称(默认情况下为小写文档类名称,在您的情况下为company)来动态创建存储库服务名称,因此-{{1} }。我假设添加其他类型的名称(在这种情况下为es.manager.default.company)时,您的存储库名称将更改为_doc。 您可以检查一下并更改您的服务要求,但老实说,我不鼓励使用es.manager.default._doc作为类型名称。