Я пытаюсь понять, как работает поиск сена.Числа и специальные символы в строке поиска в Haystack + Whoosh
Я хава порядка модели с полем Order.no где номер заказа хранится в виде 'ABC/2013/11/1', 'ABC/2013/11/2' ...
I хотите реализовать автозаполнение в этом поле, используя Haystack с бэкэндом Whoosh (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/2013/11/1 и ABC/2013/11/2 и это нормально
когда я пытаюсь
SearchQuerySet().autocomplete(name_auto='ABC/2013/11')
Я все еще Получать как ABC/2013/11/1 и ABC/2013/11/2, и это тоже нормально , но когда я тр у
SearchQuerySet().autocomplete(name_auto='ABC/2013/11/1')
Я все еще Получать как ABC/2013/11/1 и ABC/2013/11/2 Я не понимаю, почему.
Я также заметил, что когда я изменить формат чисел для всего проекта «1/ABC/2013/10» ... запрос как
SearchQuerySet().autocomplete(name_auto='1/')
не возвращает никаких результатов и запрос как
SearchQuerySet().autocomplete(name_auto='1/ABC')
возвращение как «1/ABC/2013/10», так и «2/ABC/2013/10».
Возможно, мне не хватает чего-то, связанного с числами и/или специальными символами в запросах/поисковых строках Haystack. Спасибо за любую помощь.