モデルフィールドで部分文字列値を検索する必要があります。私はインデックスとSearchQuerySetを持っています。haystackとengine Elasticsearch(Django)を使用してEdgeNgramFieldでオートコンプリートを実行しません
これはElasticsearchの設定です。
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'haystack',
},
}
マイ索引
class ElementIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
#model fields
title_element = indexes.EdgeNgramField(model_attr='title')
clean_content = indexes.EdgeNgramField(model_attr='clean_content')
def get_model(self):
return Element
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return Element.objects.filter(updatetime__lte=datetime.datetime.now())
私のカスタム検索。私は値「HolaMundoTest」を持っている、と私は「はいはい」や「HolaM」で検索しようとした場合、私は結果を見つけることが、私は「ムンド」または「ムンド」または 'しようとした場合、私のデータベースで
SearchQuerySet().filter(title_element=clean_value)
laMun 'マッチはありません。
何が問題なのですか?わかりません。
ソースhttp://django-haystack.readthedocs.org/en/v2.1.0/autocomplete.html
私が使用しています:
- -django 1.5.1
- -django、干し草の山== 2.1.0
- -elasticsearch-0.90.5
- - pyelasticsearch == 0.6
ありがとうございましたans wers-