在Elasticsearch中按其他数据排序。可能吗?

时间:2016-01-30 01:28:33

标签: python elasticsearch django-haystack

我希望在列表中搜索所有结果 -

# [ [num, pk], [1, 34], [2, 3147] ...]
# num = [0, 1, 2, ... 7]
pks = [34, 3147,..., 1264]

我希望搜索related__in=pks,但是这样。 首先.filter(related=pk[0]),然后.filter(related=pk[1]) ...并将结果连接到单个查询。

SO:

我可以在searchqueryset中添加一些字段/数据,以便稍后进行排序吗?

或者可能将许多searchquerysets连接到一个?

1 个答案:

答案 0 :(得分:0)

您所描述的是一个Haystack MultiValueField,允许搜索引擎查询您在答案中暗示的ManyToMany关系。

这是demonstrated in the documentation like so

class NoteIndex(SearchIndex, indexes.Indexable):
    text = CharField(document=True, use_template=True)
    author = CharField(model_attr='user')
    categories = MultiValueField()

有关如何有效查询此字段的详细信息,请see this related question