2013-04-09 2 views
3

Полный поиск текста с MySQL & Джанго можно сделать с помощью следующих Джанго запроса апиполнотекстового поиска с использованием PostGreSQL-8.4 и Джанго

Entry.objects.filter(headline__search="search text") 

Это возвращает результирующий набор properly.But это не может быть использована с PostgreSQL, при использовании получает исключение, которое показано ниже

Full-text search is not implemented for this database backend 

Как я могу imlement полнотекстового поиска с PostGreSQL & Джанго, который так же, как и Джанго-MySQL полнотекстового поиска?

ответ

4

Вы можете попробовать

Entry.objects.filter(headline__contains="search text") 

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

Как django doc говорит, что __search работает только с MySQL.

+1

@ Rohan, Этот запрос возвращает набор результатов, который имеет точное соответствие, есть ли опция для включения частичного совпадения? – Jaf

+0

@Jafarali, я не думаю, что '__contains' делает точное соответствие (ref: https://docs.djangoproject.com/en/dev/ref/models/querysets/#contains), для точного соответствия вам нужно использовать' __exact'. Тем не менее, он будет проверять оба (все) слова, которые нужно искать. – Rohan

+1

@ Rohan, предположим, что проверка соответствия записи «добро пожаловать в новый мир» с запросом __contains = «приветствуем мир», возвращает нулевые записи. – Jaf

0

Для чтения этого вопроса пользователя в эти дни:

PostgreSQL полнотекстового поиска поддержка присутствует, так как Джанго 1.10 (2016 г.) с помощью модуля django.contrib.postgres.search.