我正在理解乾草堆搜索的工作原理。Haystack +搜索字符串中的數字和特殊字符飛快移動
我哈瓦模型訂單與現場Order.no其中順序號被存儲在一個表格「ABC /11分之2013/ 1」,「ABC /十一分之二千〇十三/ 2」 ...
我希望使用帶有Whoosh後端的Haystack(django-haystack 2.1.0,celery-haystack 0.7.2,whoosh 2.5.5,Django 1.6)在此字段上實現自動完成功能。我search_index.py看起來是這樣的:
class OrderIndex(CelerySearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
name_auto = indexes.EdgeNgramField(model_attr='name')
def get_model(self):
return Order
當我嘗試
SearchQuerySet().autocomplete(name_auto='ABC/2013')
我收到兩個ABC /11分之2013/ 1和ABC /十一分之二千○一十三/ 2和它的確定
當我嘗試
SearchQuerySet().autocomplete(name_auto='ABC/2013/11')
我還收到兩個ABC /十一分之二千零十三/ 1和ABC /十一分之二千○一十三/ 2,它也OK 但是當我TR y
SearchQuerySet().autocomplete(name_auto='ABC/2013/11/1')
我還是收到ABC/2013/11/1和ABC/2013/11/2我不明白爲什麼。
我也注意到,當我將數字格式更改爲「1/ABC /十分之二千零十三」整個項目...查詢像
SearchQuerySet().autocomplete(name_auto='1/')
不返回任何結果和查詢一樣
SearchQuerySet().autocomplete(name_auto='1/ABC')
返回'1/ABC/2013/10'和'2/ABC/2013/10'。
也許我錯過了與Haystack查詢/搜索字符串中的數字和/或特殊字符相關的內容。謝謝你的幫助。