Solr 刻面:不一致的 JSON 格式

Posted

技术标签:

【中文标题】Solr 刻面:不一致的 JSON 格式【英文标题】:Solr faceting: Inconsistent JSON formatting 【发布时间】:2012-12-03 16:43:20 【问题描述】:

我的 solr 架构中有以下两个字段:

<field name="brand_id"     type="string" indexed="true" stored="true" />
<field name="category_id"  type="string" indexed="true" stored="true" />

当我提出启用构面的请求时(brand_id 上的构面) http://example.com/solr/select?wt=json&facet=true&facet.mincount=1&facet.field=brand_id&q=* :*

faceting 输出以对象表示法返回:

"facet_counts": 
    "facet_queries":  
    "facet_fields": 
         "brand_id": [
            "1350492":14,
            "1350578":12,
            "1350600":11,
            "1350617":8
        ]
    

但是,使用“category_id”作为构面字段重复相同的请求会返回一个数组表示法 http://example.com/solr/select?wt=json&facet=true&facet.mincount=1&facet.field=category_id&q=* :*

"facet_counts":
    "facet_queries":,
    "facet_fields":
        "category_id":[
            "230",20,
            "259",13,
            "154",12,
            "249",11
        ]
    

有没有办法强制对象符号格式?我正在使用 Solr 3.6

-- 更新--

使用 XML 格式返回正确结果:

<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
    <lst name="brand_id">
        <int name="269115">136</int>
        <int name="269394">110</int>
    </lst>


    <lst name="category_id">
        <int name="1348814">228</int>
        <int name="1350591">218</int>
    </lst>

【问题讨论】:

将 wt 从 json 更改为 xml 时的输出是什么? @pensz XML 返回正确的结构(我更新了问题)。 您确定您没有将 json.nl=map 添加到第一个查询而不是第二个吗? @BillDueber 这两个都没有设置。但是知道这个参数存在回答了我的问题。谢谢。 【参考方案1】:

如果您使用 JSON 响应编写器,则可以将 json.nl 参数添加到查询字符串以格式化构面计数。

json.nl=arrmap 将格式化为["facetValue1": facetCount1, "facetValue2": facetCount2]

json.nl=map 将格式化为"facetValue1": facetCount1, "facetValue2": facetCount2

响应作者的文档,特别是 json.nl(nl = 命名列表)可以在这里找到:https://cwiki.apache.org/confluence/display/solr/Response+Writers#ResponseWriters-JSON-SpecificParameters

【讨论】:

谢谢,我遇到了类似的问题。 json.nl 工作【参考方案2】:

不久前我也经历过类似的事情。

尝试将标签 multiValued=false 添加到字段的定义中。我记得为我修好了。

你可能需要重新索引。

【讨论】:

【参考方案3】:

正如 Bill Dueber 所提到的,您可以使用 json.nl 参数格式化 JSON 输出。查看此页面,https://wiki.apache.org/solr/SolJSON#JSON_specific_parameters

【讨论】:

查看JSON Specific Parameters

以上是关于Solr 刻面:不一致的 JSON 格式的主要内容,如果未能解决你的问题,请参考以下文章

solr

ajax跨域访问数据

Web 服务 SocketTimeOutException 导致数据库不一致

DES加密解密结果为何不一致?

打开excel显示文件格式与扩展名指定的格式不一致

如何保证solr跟数据库的数据一致性