Вы можете улучшить свою логику поиска, используя list
для накопления результатов и модуль re
для соответствия большему набору слов.
Тем не менее, это все еще довольно ограничено, подвержено ошибкам и трудно поддерживать или даже сложнее развивать. Кроме того, вы никогда не получите такие хорошие результаты, как если бы вы использовали поисковую систему.
Таким образом, вместо того, чтобы пытаться заново изобрести колесо, автомобиль и шоссе, вы должны потратить некоторое время на настройку стога сена . Теперь это стандарт de facto для поиска в Django.
Сначала используйте woosh
как бэкэнд, это будет проще. Если ваш поиск замедляется, замените его на solr
.
EDIT:
Простая чистая альтернатива:
Open_Layers.objects.filter(name__icontains=val)
Это выполнит SQL LIKE
, добавив% `для вас.
Это убьет вашу базу данных, если ее использовать слишком часто, но я думаю, что это, вероятно, не будет проблемой для вашего текущего проекта.
Кстати, вы, вероятно, хотите переименовать Open_Layers
в OpenLayers
, так как это соглашение об именах Python PEP8.