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,

Другие вопросы по тегам