Solr Search не возвращает ожидаемые результаты в Django с помощью Haystack
Я работаю над проектом Django, используя Haystack для поиска с Solr в качестве бэкенда. Я все настроил, но когда я выполняю поиск, результаты не возвращаются, как ожидалось.
Описание проблемы:
У меня есть представление поиска, которое запрашивает продукты в Solr на основе поискового запроса. Хотя поисковый запрос выполняется без ошибок, возвращаемые результаты не содержат никаких продуктов, хотя я убедился, что продукты существуют в базе данных.
views.py:
from haystack import indexes
from haystack.query import SearchQuerySet
from django.shortcuts import render
def search_view(request):
query = request.GET.get('q')
results = SearchQuerySet().filter(content=query) if query else []
print(f"Search Query: {query}, Results: {results}")
context = {
'results':results,
'query':query,
}
return render(request, 'core/search.html', context)
Search_indexes.py:
from haystack import indexes
from core.models import *
class Solr_Model_Index (indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
def get_model(self):
return Product
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.all()
Взятые шаги:
- Перестройте индекс: Я выполнил
python manage.py rebuild_index
, чтобы убедиться, что все продукты проиндексированы. - Проверил интерфейс администратора Solr: Я подтвердил, что продукты видны в Solr на вкладке "Документы".
- Отладка: Добавил операторы печати в представление поиска для проверки запроса и результатов.
Текущий выход:
Search Query: macbook, Results: <SearchQuerySet: query=<haystack.backends.solr_backend.SolrSearchQuery object at 0x0000029EE2DBBE60>, using=None>
Вопросы:
- Почему результаты поиска пустые, несмотря на наличие проиндексированных товаров?
- Есть ли какие-либо дополнительные настройки Solr или Haystack для обеспечения правильной индексации и поиска?
Любые рекомендации или соображения были бы очень признательны!