【问题标题】:Symfony Algolia Search Engine Association IndexingSymfony Algolia 搜索引擎协会索引
【发布时间】:2017-10-04 15:59:06
【问题描述】:

我有一个产品实体,每个产品都分配给一个类别,该类别是一个单独的类别实体,它与我的产品实体中的 categoryId 属性连接。我已经索引了我需要的所有属性,例如名称价格等,但我无法让我的 categoryId 正确索引:

当它被索引时,我得到一个数组,但没有实际的类别 ID 或与该类别相关的其他信息:

所以我的问题是,正确的方法是什么,以便我的产品分配到的类别被正确编入索引?

谢谢

【问题讨论】:

    标签: symfony indexing foreign-keys associations algolia


    【解决方案1】:

    你有两个问题:

    第一: 你把属性和方法放在一起,你必须选择一个。

    第二: 使用 symfony 制作这样的 ManyToOne

    $this->categoryId
    

    返回一个对象,不能用 algolia 属性映射整个对象。

    我建议你只做一个这样的方法:

    /*
     * @Algolia\Attribute
     */    
    function getCategoryName() {
        return $this->categoryId->getName();
    }
    

    【讨论】:

    • 实际上,现在我再次查看它并没有完全按预期工作,该方法在 symfony 中工作,当我运行命令将实体索引到 algolia 时,它显示“成功”但没有algolia 索引中的类别名称。这是我使用的方法: /* * @Algolia\Attribute(algoliaName="categoryName") */ public function getCategoryName() { return $this->categoryId->getName();我猜这与我没有 categoryName 属性的事实有关?但我尝试制作一个,但它仍然无法正常工作,所以在这里不完全确定。
    • 您确定您的类别有名称吗? :) 您是否尝试使用 --unsafe: php app/console algolia:reindex SomeBundle:EntityName --unsafe 重新索引
    • 是的,我的类别 deffo 有一个 name 和 getName 方法。这是我的产品实体:pastebin.com/9FBfF0qs 和我的类别:pastebin.com/hx3HW3ND 您说要尝试的命令与没有 --unsafe 命令的情况相同,表示实体已编入索引,但 algolia 中仍然没有 categoryName。 getCategoryName() 就在我的 Product 实体的底部。
    • 删除产品实体中的 attributesToIndex=... l.13
    • 好的,虽然它仍然不在 algolia 索引中,但仍然没有运气:(。还尝试清除我的缓存并删除索引并再次创建它,但仍然相同:S
    猜你喜欢
    • 2017-09-21
    • 1970-01-01
    • 2013-07-11
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 2016-12-31
    相关资源
    最近更新 更多