Djando-haystack индексирует списки вместо необработанных данных с помощью Solr
Я сталкиваюсь со странной проблемой с django-haystack + Solr: каждое поле получает список вместо фактического необработанного значения.
После индексации, вот фрагмент моего индекса Solr (вставленный из администратора Solr):
{
"id":"forum.category.4",
"django_ct":["forum.category"],
"django_id":[4],
"text":["Divers"],
"name":["Divers"],
"url":["/forum/#divers"],
"url_str":["/forum/#divers"],
"name_str":["Divers"],
"django_ct_str":["forum.category"],
"text_str":["Divers"]},
Как видите, все релевантные данные индексируются в списке из 1 элемента, что делает дальнейшие запросы невозможными.
Вот мое определение индекса:
class CategoryIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, model_attr='name')
name = indexes.CharField(model_attr='name')
url = indexes.CharField(indexed=False)
def get_model(self):
return Category
def prepare_url(self, obj):
return obj.get_absolute_url()
Любое предложение? Спасибо заранее.
1 ответ
Если вы не задали явную схему для своей коллекции в Solr и используете набор конфигурации, управляемый данными (также известный как режим без схемы), все поля по умолчанию имеют многозначные значения. Используйте правильную схему и установите поля в multiValued="false"
чтобы получить поведение, которое вы ищете.
Для джанго-стог сена вы можете использовать build_solr_schema
командовать manage.py
,