मैं एक सूचकांक क्षेत्रों के साथ Solr में LocationIndex
नामित के रूप में निम्नानुसार है:Solr कम्पोजिट अद्वितीय कुंजी
<fields>
<field name="solr_id" type="string" stored="true" required="true" indexed="true"/>
<field name="solr_ver" type="string" stored="true" required="true" indexed="true" default="0000"/>
// and some more fields
</fields>
<uniqueKey>solr_id</uniqueKey>
लेकिन अब मैं स्कीमा को बदलने के लिए इतना है कि अद्वितीय कुंजी दो पहले से ही मौजूद का समग्र होना चाहिए चाहते हैं खेतों solr_id
और solr_ver
... कुछ इस प्रकार है:
<fields>
<field name="solr_id" type="string" stored="true" required="true" indexed="true"/>
<field name="solr_ver" type="string" stored="true" required="true" indexed="true" default="0000"/>
<field name="composite-id" type="string" stored="true" required="true" indexed="true"/>
// and some more fields
</fields>
<uniqueKey>solr_ver-solr_id</uniqueKey>
मैंने पाया कि यह स्कीमा के लिए निम्न जोड़कर संभव है खोज करने के बाद: (संदर्भ: Solr Composite Unique key from existing fields in schema)
<updateRequestProcessorChain name="composite-id">
<processor class="solr.CloneFieldUpdateProcessorFactory">
<str name="source">docid_s</str>
<str name="source">userid_s</str>
<str name="dest">id</str>
</processor>
<processor class="solr.ConcatFieldUpdateProcessorFactory">
<str name="fieldName">id</str>
<str name="delimiter">--</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
तो मैं स्कीमा बदल गया है और अंत में यह दिखाई देता है:
<updateRequestProcessorChain name="composite-id">
<processor class="solr.CloneFieldUpdateProcessorFactory">
<str name="source">solr_ver</str>
<str name="source">solr_id</str>
<str name="dest">id</str>
</processor>
<processor class="solr.ConcatFieldUpdateProcessorFactory">
<str name="fieldName">id</str>
<str name="delimiter">-</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
<fields>
<field name="solr_id" type="string" stored="true" required="true" indexed="true"/>
<field name="solr_ver" type="string" stored="true" required="true" indexed="true" default="0000"/>
<field name="id" type="string" stored="true" required="true" indexed="true"/>
// and some more fields
</fields>
<uniqueKey>id</uniqueKey>
लेकिन जब एक दस्तावेज जोड़ने यह मुझे त्रुटि दे रही है:
org.apache.solr.client.solrj.SolrServerException: Server at http://localhost:8983/solr/LocationIndex returned non ok status:400, message:Document [null] missing required field: id
मैं नहीं मिल रहा है क्या स्कीमा में आने वाले बदलाव कर रहे हैं वांछित के रूप में काम करने के लिए आवश्यक है?
एक दस्तावेज़ में जो मैं जोड़ता हूं, इसमें फ़ील्ड solr_ver
और solr_id
शामिल हैं। solr_ver-solr_id
जैसे कुछ फ़ील्ड को जोड़कर यह कैसे और कहाँ होगा (solr) id
फ़ील्ड बनायेगा?
संपादित करें:
this link पर यह कैसे इस श्रृंखला का उल्लेख दिया है। Bu मैं समझने में असमर्थ हूं कि इसका उपयोग स्कीमा में कैसे किया जाएगा? और मुझे परिवर्तन कहां करना चाहिए?
आप अपने डाटाबेस-data.config फ़ाइल पोस्ट कर सकते हैं – Nipun