symfony fos elasticabundleMap类型“array”

baubqpgj  于 2023-05-18  发布在  其他
关注(0)|答案(3)|浏览(79)

我在表/实体“类别”的列“标签”中有一个教义数组。
FOS ElasticaBundle已经启动并工作了,现在我想在搜索中添加“标签”列。
我找不到任何关于如何设置这个的资源。以下是我尝试过的,也想做的。

search:
        client: default
        types:
            category:
                mappings:
                    displayName: ~
                    searchRef: ~
                    tags:
                        type: 'array'
                persistence:
                    driver: orm
                    model: SC\ProviderBundle\Entity\Category
                    provider: ~
                    listener: ~
                    finder: ~

我有三个其他类型使用Map类型“嵌套”比运行罚款。预期的数组没有键,所以我不知道该为属性写什么。
我得到这个错误

[Elastica\Exception\ResponseException]
 MapperParsingException[mapping [category]]; nested: MapperParsingException[No handler for type [array] declared on field [tags]];

如何使用FOSElasticaBundle在Symfony 2中将Map类型“tags”设置为数组,以及在任何文档中有哪些内容?

y3bcpkx1

y3bcpkx11#

答案是

type:
    category:
        mappings:
            tags:
                type: 'string'

如此处所述
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-array-type.html
(工作链接,但idk如果它是同一页,有人随时编辑和改进这个答案)https://www.elastic.co/guide/en/elasticsearch/reference/1.4/mapping-array-type.html

s5a0g9ez

s5a0g9ez2#

我也遇到过同样的问题。对于最新版本的elasticsearch(v4),类型需要是'text':

type:
    category:
        mappings:
            tags:
                type: 'text'
nlejzf6q

nlejzf6q3#

您可以使用以下配置:

types:
        category:
            mappings:
                displayName: ~
                searchRef: ~
                tags:
                    type: nested
                    properties:
                         yourTagProperty: ~

相关问题