.sort()
メソッドに問題があります。elasticsearch-dsl-py Text()フィールドでソート
FILTER = token_filter(
'FILTER', 'edge_ngram', min_gram=3, max_gram=40)
ANALYZER = analyzer(
'ANALYZER', tokenizer='standard', type='custom', filter=[
'standard', 'lowercase', 'stop', 'asciifolding',FILTER])
class Article(DocType):
title = Text(analyzer=ANALYZER)
body = Text(analyzer='snowball')
tags = Keyword()
search = Article.search().sort('title')
search.execute()
私は、ソートと検索クエリを実行しようとすると、私はエラーを取得:
elasticsearch.exceptions.RequestError: TransportError(400, 'search_phase_execution_exception', 'Fielddata is disabled on text fields by default. Set fielddata=true on [title] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.')
は、どのように私は、この場合には適切にtitle
フィールドで並べ替えることができますたとえば、私は、テキストとインデックス()フィールドを持っていますfieldata=true
を設定せずに
どのように文字列'についてのに役立ちますフィールド? 'string'フィールドをソートすることはできますか? – pkisztelinski
'String'は非推奨です。' String(index = "not_analyzed") 'は' keyword'で置き換えられ、他のすべての 'String'インスタンスは' text'に似ていますので同じ制限が適用されます。 –
あなたは 'fields'パラメータ(https://www.elastic.co/guide/en/elasticsearch/)を使って両方のフィールドタイプ(' text'と 'keyword')を使用することができます。 reference/current/multi-fields.html –