2017-09-01 40 views
0

我在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}] 
     }} 

可能嗎?如果是這樣,我怎麼發送我的數據,以便它不會保存爲列表?

回答

0

您必須爲此更改solr模式中的字段類型。 在您的字段類型中查找多值。如果您使用動態字段類型,我會建議根據您的模式定義新的字段集合。

2

檢查所有這些領域"ad_id","hash","campaign_id","fingerprint", 在Schema.xml文件聲明,如果multivalued設置爲true

例如:

<field name="ad_id" type="text_general" indexed="true" stored="true" multiValued="true"/> 

變化multivalued="false"如果你是確保所有這些領域將有單值在一個文件中。

注意:如果多值=「假」,您不能存儲多個值到該字段。模式修改後重新啓動/重新加載solr和reindex文檔。

+0

因爲我是Solr的新手,你可以告訴我schema.xml文件在哪裏 –

+0

我希望你使用最新版本的solr。例如:'solr-6.1.0/server/solr/collection_name/conf/managed-schema' – vinod

+0

如果你使用的是舊版本的ex:5.3.1,它將與名稱schema.xml'solr-5.3.1/server/solr/collection_name/conf/schema.ml'最近發佈的solr,文件名被更改爲託管模式。 – vinod

相關問題