sunburnt:解析响应时出现SolrError

2024-03-28 13:10:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我在玩我计划在Django应用程序中使用的这个接口时遇到了以下错误跟踪:

import sunburnt
si = sunburnt.SolrInterface("http://localhost:8984/solr/sprod/") si.query(global_attr_article_type='casual shoes').execute()
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/dist-packages/sunburnt/search.py", line 599, in execute
result = self.interface.search(**self.options())
File "/usr/local/lib/python2.7/dist-packages/sunburnt/sunburnt.py", line 212, in search
return self.schema.parse_response(self.conn.select(params))
File "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", line 510, in parse_response
return SolrResponse(self, msg)
File "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", line 652, in init
self.result = SolrResult(schema, result_node)
File "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", line 691, in init
self.docs = [schema.parse_result_doc(n) for n in node.xpath("doc")]
File "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", line 519, in parse_result_doc
return dict([self.parse_result_doc(n) for n in doc.getchildren()])
File "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", line 516, in parse_result_doc
values = [self.parse_result_doc(n, name) for n in doc.getchildren()]
File "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", line 525, in parse_result_doc
return name, SolrFieldInstance.from_solr(field_class, doc.text or '').to_user_data()
File "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", line 326, in from_solr
self.value = self.field.from_solr(data)
File "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", line 161, in from_solr
return self.normalize(value)
File "/usr/local/lib/python2.7/dist-packages/sunburnt/schema.py", line 219, in normalize
(value, self.class, self.name))
SolrError: is invalid value for class 'sunburnt.schema.SolrFieldType_SolrIntField_indexed_True_omitNorms_True_stored_True' (field designer) `

索引文档中的designer字段确实为空
<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"/>

我知道这与字段为空有关,但是由于模式中没有提到“required”=true,所以我想知道到底发生了什么。在


Tags: inpyselfdocparseschemalibpackages
1条回答
网友
1楼 · 发布于 2024-03-28 13:10:00

我想是吧

<arr name="designer"> <int/> </arr> 

表示您试图在Solr中存储多值整数字段?但是designer的字段定义需要一个单值整数。如果文档没有设计器字段,则索引的文档应该没有该字段的内容。在

相关问题 更多 >