处理 facet.pivot 中的数据 Solr/Python
Process facet.pivot Data in Solr/Python
我正在用这个查询 Solr 核心 url:
select?q=*:*&rows=0&facet=on&facet.limit=-1&facet.mincount=0&facet.pivot=brand,series,sub_series
使用 Facet Pivot 功能
部分 JSON 响应,请注意字段是如何正确嵌套的:
"facet_pivot":{
"brand,series,sub_series":[{
"field":"brand",
"value":"A. Lange & Sohne",
"count":69,
"pivot":[{
"field":"series",
"value":"1815 Manual Wind",
"count":1},
{
"field":"series",
"value":"1815 Up Down",
"count":1},
{
"field":"series",
"value":"Datograph",
"count":3,
"pivot":[{
"field":"sub_series",
"value":"Perpetual",
"count":2},
{
"field":"sub_series",
"value":"Up Down",
"count":1}]},
现在我用 pySolr 复制相同的查询:
def nested_navbar():
result = solr.search('*:*', **{
'rows': '0',
'facet': 'on',
'facet.limit': '-1',
'facet.mincount': '0',
'facet.pivot': ['brand_exact', 'series_exact', 'sub_series_exact']
})
result = result.facets['facet_pivot']
return result
出于某种原因,当我打印数据(pdb 或 Django 模板)时,结果中的字典有 3 个不同的品牌、系列和 sub_series 数组,没有原始嵌套。换句话说,数据透视字段不见了。
根据 matslindh 的建议,我为 pySolr 设置了日志记录:
- 将
export DEBUG_PYSOLR='true'
添加到终端。
- 运行 服务器并检查日志。
这里是 pySolr 生成的 link:
/?q=%2A%3A%2A&rows=0&facet=on&facet.limit=-1&facet.mincount=0&facet.pivot=brand&facet.pivot=series&facet.pivot=sub_series&wt=json
问题是 pySolr 正在为数组中的每个项目('brand'、'series' 和 'sub_series')创建一个新的 facet.pivot
字段。
我的新代码解决了这个问题并生成了一个 facet.pivot
字段:
'facet.pivot': 'brand,series,sub_series'
我正在用这个查询 Solr 核心 url:
select?q=*:*&rows=0&facet=on&facet.limit=-1&facet.mincount=0&facet.pivot=brand,series,sub_series
使用 Facet Pivot 功能
部分 JSON 响应,请注意字段是如何正确嵌套的:
"facet_pivot":{
"brand,series,sub_series":[{
"field":"brand",
"value":"A. Lange & Sohne",
"count":69,
"pivot":[{
"field":"series",
"value":"1815 Manual Wind",
"count":1},
{
"field":"series",
"value":"1815 Up Down",
"count":1},
{
"field":"series",
"value":"Datograph",
"count":3,
"pivot":[{
"field":"sub_series",
"value":"Perpetual",
"count":2},
{
"field":"sub_series",
"value":"Up Down",
"count":1}]},
现在我用 pySolr 复制相同的查询:
def nested_navbar():
result = solr.search('*:*', **{
'rows': '0',
'facet': 'on',
'facet.limit': '-1',
'facet.mincount': '0',
'facet.pivot': ['brand_exact', 'series_exact', 'sub_series_exact']
})
result = result.facets['facet_pivot']
return result
出于某种原因,当我打印数据(pdb 或 Django 模板)时,结果中的字典有 3 个不同的品牌、系列和 sub_series 数组,没有原始嵌套。换句话说,数据透视字段不见了。
根据 matslindh 的建议,我为 pySolr 设置了日志记录:
- 将
export DEBUG_PYSOLR='true'
添加到终端。 - 运行 服务器并检查日志。
这里是 pySolr 生成的 link:
/?q=%2A%3A%2A&rows=0&facet=on&facet.limit=-1&facet.mincount=0&facet.pivot=brand&facet.pivot=series&facet.pivot=sub_series&wt=json
问题是 pySolr 正在为数组中的每个项目('brand'、'series' 和 'sub_series')创建一个新的 facet.pivot
字段。
我的新代码解决了这个问题并生成了一个 facet.pivot
字段:
'facet.pivot': 'brand,series,sub_series'