Solr文档的字段是否只保存为列表?

时间:2017-09-01 06:09:52

标签: python django solr

我在Solr中创建了一个文档,并在其中提供了一些数据。数据保存为文档中的列表,如下所示:

"response":{"numFound":2,"start":0,"docs":[
 {
        "ad_id":[1],
        "hash":["1"],
        "campaign_id":["1"],
        "fingerprint":[1],
        "id":"44c458eb-0674-4fce-ad54-e16234c868bf",
        "_version_":1577315711035899904}]
  }}

我目前正在向Solr表格django提供静态数据,如下所示:

solr.add([
        {
            "hash": "1",
            "ad_id": "1",
            "campaign_id": "1",
            "fingerprint": "1",
            }
    ])

我希望数据保存如下(不是列表形式):

"response":{"numFound":2,"start":0,"docs":[
     {
            "ad_id":"1",
            "hash":"1",
            "campaign_id":"1",
            "fingerprint":"1",
            "id":"44c458eb-0674-4fce-ad54-e16234c868bf",
            "_version_":1577315711035899904}]
      }}

有可能吗?如果是,我如何发送我的数据,以便它不会保存为列表?

2 个答案:

答案 0 :(得分:2)

检查所有这些字段"ad_id","hash","campaign_id","fingerprint", 如果multivalued设置为true,则在schema.xml文件中声明

前:

<field name="ad_id" type="text_general" indexed="true" stored="true" multiValued="true"/>
如果您确定所有这些字段在一个文档中都具有单个值,则

更改为multivalued="false"

注意:如果多值=&#34; false&#34;,则无法将多个值存储到该字段。架构修改后重新启动/重新加载solr并重新索引文档。

答案 1 :(得分:0)

您必须为此更改solr架构中的字段类型。 在字段类型中查找多值。如果您使用的是动态字段类型,我建议您根据架构定义新的字段集。