Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 干草堆及;ElasticSearch:搜索相关字段;使用嵌套类型?_Python_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Django Haystack - Fatal编程技术网 elasticsearch,django-haystack,Python,elasticsearch,Django Haystack" /> elasticsearch,django-haystack,Python,elasticsearch,Django Haystack" />

Python 干草堆及;ElasticSearch:搜索相关字段;使用嵌套类型?

Python 干草堆及;ElasticSearch:搜索相关字段;使用嵌套类型?,python,elasticsearch,django-haystack,Python,elasticsearch,Django Haystack,我正在使用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',

我正在使用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\u role=index.CharField(…)
),其中每个条目都有一个我要解析的分隔符(例如,
“Jill#Author”
)。但这看起来很难看

有没有更好的方法?我觉得我能帮上忙,但我不确定


即使我使用的是django haystack,如果有elasticsearch特定的答案,我也会很高兴听到它。

事实上,elasticsearch的
嵌套的
类型对于整洁地工作是必不可少的。django haystack默认不支持此功能(因为它特定于ES),但可以通过扩展haystack的一些类来支持此功能

有一种方法可以非常清楚地解释这一点(也有一种方法可以分叉)


巧合的是,我写了这封信,@speedplane已经找到了,但是嘿…-)

我发现的一个问题是,不能对嵌套类型使用镶嵌面或聚合。我能够解决这个问题,但它需要更改为
UnifiedIndex.get_facet\u fieldname
interest。。不过,看起来子类化
UnifiedIndex
会非常烦人。你对修改后的
get\u facet\u fieldname
进行了monkeypatch吗?我不想对那个野兽进行子类化,所以我只是对它进行了monkeypatch。我会考虑提交一个官方补丁,但我非常怀疑它会被接受。是的,我不太确定海草ES的后端开发是怎么回事。不过,看看你的变通方法会很有趣!也许在一个叉子里?