Как мы можем получить самый популярный поисковый список в django rest framework, используя упругий поиск? - PullRequest
0 голосов
/ 15 мая 2019

Я использую django 2.1, эластичный поиск 6.1 и django -asticsearch-dsl-drf 0.17.6.

view.py

class SchoolViewSet(DocumentViewSet):
    document = SchoolDocument
    serializer_class = SchoolDocumentSerializer
    permission_classes = (AllowAny,)

    lookup_field = 'id'
    filter_backends = [
        FilteringFilterBackend,
        CompoundSearchFilterBackend,
        FacetedSearchFilterBackend
    ]

    # Define ordering fields
    ordering_fields = {
        'name': 'name',
    }

    # Specify default ordering
    ordering = ('name',)

    faceted_search_fields = {
        'top_name_hit': {
            'field': 'name',
            'facet': TermsFacet,
            'enabled': True,
            'options': {
                'size': 4,  # Override default number of suggestions
                "order": {"_count": "desc"},
                'show_term_doc_count_error': True,
            },

        },
    }

documents.py

@INDEX.doc_type
class InstituteDocument(DocType):
    id = fields.StringField(attr='id_str')
    name = fields.StringField(
        analyzer=html_strip,
        fields={
            'raw': KeywordField(),
            'suggest': fields.CompletionField(),
            'edge_ngram_completion': fields.StringField(
                analyzer=edge_ngram_completion
            ),
        },
        fielddata=True
    )
    class Meta:
        model = School

Я хочу получить результат самой популярной школы.Как я могу получить список самых популярных трендов?

1 Ответ

0 голосов
/ 17 мая 2019

Если вы хотите получить документы большого размера, вам нужно отсортировать по полям, если вы хотите получить школьные документы, вам нужно использовать школьную фильтрацию. Если вы не можете найти эти методы, попробуйте посмотреть на djangoИсходный код es dsl drf.https://github.com/sabricot/django-elasticsearch-dsl

Потому что мне не разрешено писать комнет, поэтому я пишу здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...