は、私は、バックエンドとしてelasticsearchと検索インデックスを持っている:ジャンゴ・ヘイスタック(elasticsearch)オートコンプリートは、検索語に部分文字列の結果を与える
class MySearchIndex(indexes.SearchIndex, indexes.Indexable):
...
name = indexes.CharField(model_attr='name')
name_auto = indexes.NgramField(model_attr='name')
...
私はelasticsearchで値を次があるとします。
Cable
Magnet
Network
Internet
Switch
私は 'NETW' を検索し実行すると
は、それはまた、ネットワークとともにマグネット & インターネットを返しました。他のテストケースを使用すると、haystackはnet in netwのように、上記の例のように部分文字列も検索していると思います。ここで
は、コードは次のとおりです。
sqs = sqs.filter(category='cat_name').using(using)
querried = sqs.autocomplete(name_auto=q)
もしてみました:
querried = sqs.autocomplete(name_auto__contains=q)
どのように私はこの問題を解決し、それが正確な検索語が含まれている結果のみを返すように取り組んで作ることができますか? 1.9.1 elasticsearchの== 1.9.0