elasticsearch Wagtail:在Elasticsearch 5中使用反向访问器索引多对多关系,elasticsearch,indexing,many-to-many,wagtail,elasticsearch,Indexing,Many To Many,Wagtail" /> elasticsearch Wagtail:在Elasticsearch 5中使用反向访问器索引多对多关系,elasticsearch,indexing,many-to-many,wagtail,elasticsearch,Indexing,Many To Many,Wagtail" />

elasticsearch Wagtail:在Elasticsearch 5中使用反向访问器索引多对多关系

elasticsearch Wagtail:在Elasticsearch 5中使用反向访问器索引多对多关系,elasticsearch,indexing,many-to-many,wagtail,elasticsearch,Indexing,Many To Many,Wagtail,我无法通过Wagtail的update\u index命令获得Elasticsearch,以索引与反向访问器的多对多关系 为了证明问题,考虑这里可用的模型: (这是一个最小的工作示例,显示了两个多对多关系的工作索引和非工作索引) 这将使用Wagtail 1.8.1、Elasticsearch 5.1.1和Elasticsearch py 5.1.0 在这里,我尝试两次索引多对多关系: 标记:在MyPage模型中有一个显式字段,该字段有一个到属性 类别:使用相关的\u name='Categori

我无法通过Wagtail的
update\u index
命令获得Elasticsearch,以索引与反向访问器的多对多关系

为了证明问题,考虑这里可用的模型: (这是一个最小的工作示例,显示了两个多对多关系的工作索引和非工作索引)

这将使用Wagtail 1.8.1、Elasticsearch 5.1.1和Elasticsearch py 5.1.0

在这里,我尝试两次索引多对多关系:

  • 标记:在
    MyPage
    模型中有一个显式字段,该字段有一个
    属性

  • 类别:使用
    相关的\u name='Categories'
    (在
    MyPage
    中没有显式字段)附加到
    MyPage
    模型中的
    MyPage
    。在上面的代码中,我展示了在
    MyPage
    模型的
    search\u字段中捕获categories关系的三种不同尝试,但都没有成功

  • 标签和类别的配置方式也可能存在其他差异,这可能会导致问题

    问题:Elasticsearch不会为类别编制索引,但会为标签编制索引:

    "indexing_mypage__categories" : null,
    "indexing_mypage__tags" : [
        {
            "name" : "tag2"
        }
    ],
    
    问题:如何让Elasticsearch为
    MyPage
    的类别编制索引?
    MyPage.search\u字段应该是什么样子


    目标是能够按类别搜索页面。

    我不确定自己是否100%理解这个问题,但在遇到类似问题后,我遇到了这个问题。这是我为文章和类别(我称之为问题)的作者编制索引的解决方案。这是从摇尾上取下来的

    search_fields = Page.search_fields + [
        index.SearchField('get_issues'),
        index.SearchField('get_columnists'),
    ]
    
    def get_issues(self):
        # Get list of issues and concatenate them
        return '\n'.join(self.issues.all().values_list('issue', flat=True))
    
    def get_columnists(self):
        # Get list of columnists
        return '\n'.join(self.columnists.all().values_list('name', flat=True))