gpt4 book ai didi

python - Haystack 和 ElasticSearch : Searching Related Fields; Use nested Type?

转载 作者:行者123 更新时间:2023-12-01 05:26:24 25 4
gpt4 key购买 nike

我在 Elasticsearch 上使用 django-haystack。我的索引文档每个都有许多人的姓名,以及每个人与文档相关联的角色。例如:

Doc1:
name='Bob', role='Author'
name='Jill', role='Editor'
name='Joe', role='Publisher'

Doc2:
name='Jill', role='Author'
name='Phill', role='Editor'
name='Janet', role='Contributor'

如何设置索引以允许我进行搜索:“查找 Jill作者 的所有文档”?在上面的示例中,我希望它仅返回 Doc2 Doc1

一个人可以拥有数百种不同类型的角色,因此为每种类型都有一个索引字段是不现实的。我考虑过使用一个索引字段将两者连接在一起(例如,name_role=indexes.CharField(...)),其中每个条目都有一个我要解析的分隔符(例如, “吉尔#作者”)。但这看起来很丑。

有没有更好的方法来做到这一点?我感觉像ElasticSearch's nested type也许可以提供帮助,但我不确定。

即使我使用的是 django-haystack,如果有一个针对 elasticsearch 的具体答案,我很乐意听到。

最佳答案

事实上,ElasticSearch 的嵌套类型对于使其顺利工作至关重要。 django-haystack 默认不支持此功能(因为它是 ES 特定的),但可以通过扩展 haystack 的一些类来支持此功能。

有一个blog post这非常清楚地解释了这一点(以及可以 fork 的gist)。

巧合的是,我写了这篇文章,@speedplane 已经找到了它,但是嘿..;-)

关于python - Haystack 和 ElasticSearch : Searching Related Fields; Use nested Type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21249483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com