упругая поисковая совокупность [python] - PullRequest
1 голос
/ 26 июня 2019

Я проиндексировал модели постов и сообществ,

post = Index('posts')
post.settings(
    number_of_shards=1,
    number_of_replicas=0
)

@post.doc_type
class PostDocument(DocType):
    community = fields.ObjectField(properties={
        'id': fields.IntegerField(),
        'description': fields.TextField(),
        'name': fields.StringField(),
    })

Я хочу искать посты и объединять сообщества
(возвращает сообщества постов в результате)

Могунужно использовать агрегацию, у меня возникли трудности при ее реализации, документация для меня была непонятной.

q = Q("multi_match", query=query, fields=['title', 'content'])
document.query(q)
document.aggs.bucket('per_tag', 'terms', field='community')

1 Ответ

0 голосов
/ 26 июня 2019

Я думаю, вам нужно изменить агрегацию на что-то похожее на:

document.aggs.bucket('per_tag', 'terms', field='community__id')

Поскольку сообщество представляет собой сложные объекты, иasticsearch может выполнять агрегирование только с простыми полями. (ключевое слово или целое число)

...