Я новичок здесь и это мой первый вопрос, извините, если я что-то упустил.
Кажется, у django -oscar есть проблема с поиском. что я пытаюсь точно понять: у меня есть проект, в котором поиск работает со значениями по умолчанию " диапазон цен " и некоторыми полями по умолчанию, такими как " класс продукта " и " рейтинг ». НО, когда я пытаюсь добавить свои собственные атрибуты в solr, я ничего не получаю (атрибуты были добавлены через models.py ):
location = models.TextField(('Location'), blank=True, default=None, null=True)
duration = models.TextField(('Duration'), blank=True, default=None, null=True)
Я добавил эти строки в свой search_indexes.py
class ProductIndex(indexes.SearchIndex, indexes.Indexable):
product_class = indexes.CharField(null=True, faceted=True) <-- default working
location = indexes.CharField(null=True, faceted=True)
duration = indexes.CharField(null=True, faceted=True)
def prepare_product_class(self, obj):
return obj.get_product_class().name <-- default working
def prepare_location(self, obj):
return obj.get_location_class().name
def prepare_duration(self, obj):
return obj.get_duration_class().name
добавил их в settings.py
OSCAR_SEARCH_FACETS = {
'fields': OrderedDict(
[('product_class', {'name': _('Type'), 'field': 'product_class'}),
('rating', {'name': _('Rating'), 'field': 'rating'}),
('location', {'name': _('Location'), 'field': 'location'}),
('duration', {'name': _('Duration'), 'field': 'duration'}),
]),
Итак, первая проблема с командой python manage.py build_solr_schema> solr / schema. xml схема построения. xml, которая не работает - solr выдает ошибки в некотором поле id, , и нет полей , которые я хотел бы добавить ,
Хорошо, я получаю схему. xml от github , и solr работает со стандартной функциональностью. Я добавил туда два поля вручную:
<field name="location" type="edge_ngram" indexed="true" stored="true" multiValued="false" />
<field name="duration" type="edge_ngram" indexed="true" stored="true" multiValued="false" />
Поиск работает с атрибутами по умолчанию, и до сих пор нет атрибутов, которые я пытался добавить ранее:
Здесь я вижу пользовательские атрибуты
И его здесь нет
И, конечно, здесь нет
Solr log
22087 [qtp1778535015-11] INFO org.apache.solr.core.SolrCore UnInverted multi-valued field field=location,memSize=4288,tindexSize=0,time=0,phase1=0,nTerms=0,bigTerms=0,termInstances=0,uses=0}
22103 [qtp1778535015-11] INFO org.apache.solr.core.SolrCore .. UnInverted multi-valued field {field=duration,memSize=4288,tindexSize=0,time=0,phase1=0,nTerms=0,bigTerms=0,termInstances=0,uses=0}
что мне может не хватать? Заранее благодарю за любой совет.
Стек:
django==2.0.6
django-oscar==1.6.4
django-haystack==2.8.1
solr == 4.8.2