Используя Django-HayStack, как я могу выполнить поиск с только частичными условиями?

StackOverflow https://stackoverflow.com/questions/4600492

  •  25-09-2019
  •  | 
  •  

Вопрос

У меня есть индекс поиска сена / ксапан для django.contrib.auth.models.User. Отказ Шаблон просто

{{object.get_full_name}}

Как я намерен для пользователя ввести имя и иметь возможность искать его.

Моя проблема в том, если я ищу, скажем, Sri (Мое полное имя) Я придумал результатом для объекта пользователя, относящегося к моему имени. Тем не менее, если я ищу Sri Ragh - То есть мое полное имя и часть моей фамилии, я не получаю результатов.

Как я могу установить HayStack up, чтобы я мог получить подходящие результаты для частичных запросов? (Я, по сути, хочу, чтобы это искать *Sri Ragh*, но я не знаю, действительно ли подстановочные знаки на самом деле сделают трюк или как их реализовать).

Это мой поисковый запрос:

results = SearchQuerySet().filter(content='Sri Ragh')
Это было полезно?

Решение

Я использую, чтобы иметь аналогичную проблему, как обходной путь или, может быть, исправление, вы можете изменить поиск запроса

results = SearchQuerySet().filter(content__startswith='Sri Ragh')

Выпуск в том, что Django HayStack не реализует все линго из поисковых систем. Конечно, вы можете сделать это.

results = SearchQuerySet().raw_search('READ THE SEARCH ENGINE QUERY SYNTAX FOR GET WILDCARD LOOKUPS')

Как говорит Django-Haystack, это не портативно.

Другие советы

Вы можете использовать Icontains или StartSwith.

Будьте осторожны с этим, если запрос является примером «R», это принесет вам все объекты «модели», которые имеют «R» в своем содержании.

Model.objects.filter(content__icontains=query)

Model.objects.filter(content__startswith=query)

Посмотрите документация

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top