我正在使用django 2.1,elastic search 6.1和django-elasticsearch-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
我想获得搜索最多的学校的结果。 如何获取热门趋势列表?
答案 0 :(得分:0)
如果要获取最大尺寸的文档,则需要按字段排序,如果要获取一些学校文档,则需要使用学校过滤。如果找不到这些方法,请尝试查看django es dsl drf源代码。 https://github.com/sabricot/django-elasticsearch-dsl
因为不允许写commnet,所以我在这里写。