sunburnt: SolrError при разборе ответа
Я наткнулся на следующую ошибку, просто играя с этим интерфейсом, который я планирую использовать в приложении Django:
импорт загорелых
si = sunburnt.SolrInterface("http://localhost:8984/solr/sprod/")
si.query (global_attr_article_type = 'повседневная обувь'). execute ()
Traceback (последний вызов был последним):
Файл "", строка 1, в
Файл "/usr/local/lib/python2.7/dist-packages/sunburnt/search.py", строка 599, в исполнении
result = self.interface.search(**self.options())
Файл "/usr/local/lib/python2.7/dist-packages/sunburnt/sunburnt.py", строка 212, в поиске
вернуть self.schema.parse_response (self.conn.select (params))
Файл "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", строка 510, в parse_response
вернуть SolrResponse(self, msg)
Файл "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", строка 652, в init
self.result = SolrResult (схема, result_node)
Файл "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", строка 691, в init
self.docs = [schema.parse_result_doc (n) для n в файле node.xpath("doc")]
Файл "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", строка 519, в parse_result_doc
вернуть dict([self.parse_result_doc(n) для n в doc.getchildren()])
Файл "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", строка 516, в parse_result_doc
values = [self.parse_result_doc(n, name) для n в doc.getchildren ()]
Файл "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", строка 525, в parse_result_doc
возвращаемое имя, SolrFieldInstance.from_solr(field_class, doc.text или '').to_user_data()
Файл "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", строка 326, из from_solr
self.value = self.field.from_solr (данные)
Файл "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", строка 161, из from_solr
вернуть self.normalize(значение)
Файл "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", строка 219, в нормализованном виде
(значение, self.class, self.name))
SolrError: недопустимое значение для класса 'sunburnt.schema.SolrFieldType_SolrIntField_indexed_True_omitNorms_True_stored_True' (конструктор полей) `
Поле конструктора в проиндексированном документе действительно пустое<arr name="designer">
<int/>
</arr>
<arr name="discount">
<float>0.0</float>
</arr>
<arr name="discount_label">
<str/>
</arr>
и вот что есть схема
<fieldType name="integer" class="solr.IntField" omitNorms="true"/>
..
...
....
<field name="designer" type="integer" indexed="true" stored="true"/>
Я понимаю, что это связано с тем, что поле пустое, но поскольку в схеме нигде не указано "требуется" = "истина" для этого поля, мне интересно, что на самом деле происходит.
1 ответ
Похоже
<arr name="designer"> <int/> </arr>
подразумевает, что вы пытаетесь сохранить многозначное целочисленное поле в Solr? Но ваше определение поля для designer
требуется однозначное целое число. Если у вас нет поля конструктора для документа, то у документа, который вы индексируете, не должно быть ничего для этого поля.