6

होना चाहिए मुझे अपाचे सोलर के साथ समस्या का सामना करना पड़ रहा है जहां मुझे JSON प्रतिक्रियाओं में सूचियों में लिपटे फ़ील्ड प्राप्त हो रहे हैं लेकिन वे एकवचन होना चाहिए।अपाचे सोलर प्रतिक्रिया में फ़ील्ड बहुगुणित होते हैं जब उन्हें एकवचन

<doc> 
    <field name="id">search.productcategory.3</field> 
    <field name="gender">M</field> 
    <field name="name">OBQYHSOQLWOUEHRMPSDI</field> 
    <field name="text">M\nOBQYHSOQLWOUEHRMPSDI</field> 
    <field name="django_id">3</field> 
    <field name="django_ct">search.productcategory</field> 
</doc> 

और यहाँ है:

<fields> 
    <!-- general --> 
    <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/> 
    <field name="django_ct" type="string" indexed="true" stored="true" multiValued="false"/> 
    <field name="django_id" type="string" indexed="true" stored="true" multiValued="false"/> 

यहाँ कैसे डेटा Solr को पोस्ट किया जाता है का एक उदाहरण है: यहाँ मुझे एक समस्या django_ct और django_id हैं दे Schema.xml, दो उदाहरण क्षेत्रों से एक exerpt है सोलर में संग्रहीत फ़ाइल का एक उदाहरण:

"response": { 
    "numFound": 1, 
    "start": 0, 
    "docs": [ 
     { 
     "django_ct": [ 
      "search.productcategory" 
     ], 
     "name": [ 
      "Example" 
     ], 
     "text": [ 
      "Male\nExample" 
     ], 
     "id": "search.productcategory.2", 
     "gender": [ 
      "Male" 
     ], 
     "django_id": [ 
      2 
     ], 
     "_version_": 1502081283634757600 
     } 
    ] 
    } 

इन फ़ील्ड को सूचियों में लपेटने का कारण क्या है? स्कीमा में, multiValued इन फ़ील्ड के लिए विशेषता गलत पर सेट है। कोर बनाने और schema.xml को बदलने के अलावा बाकी सब कुछ सीधे बॉक्स से बाहर है। मैं हेस्टैक (एक Django प्लगइन) का उपयोग कर सोलर तक पहुंच रहा हूं, कोड इन क्षेत्रों के लिए एकल मान प्राप्त करने की अपेक्षा करता है लेकिन इसे पूरी तरह से तोड़ दिया जाता है। इस समस्या का पता लगाना कि ऐसा लगता है कि सौर कैसे कॉन्फ़िगर किया गया है।

संपादित करें: समस्या की जड़ तक

INFO - 2015-05-27 08:38:12.563; [ ] org.eclipse.jetty.server.Server; jetty-8.1.10.v20130312 
INFO - 2015-05-27 08:38:12.586; [ ] org.eclipse.jetty.deploy.providers.ScanningAppProvider; Deployment monitor /Users/sampeka/solr-5.1.0/server/contexts at interval 0 
INFO - 2015-05-27 08:38:12.593; [ ] org.eclipse.jetty.deploy.DeploymentManager; Deployable added: /Users/sampeka/solr-5.1.0/server/contexts/solr-jetty-context.xml 
INFO - 2015-05-27 08:38:13.629; [ ] org.eclipse.jetty.webapp.StandardDescriptorProcessor; NO JSP Support for /solr, did not find org.apache.jasper.servlet.JspServlet 
INFO - 2015-05-27 08:38:13.682; [ ] org.apache.solr.servlet.SolrDispatchFilter; SolrDispatchFilter.init()[email protected] 
+0

क्या आप SearchQuerySet का उपयोग कर घास के मैदान से सोलर तक पहुंच रहे हैं? यदि हाँ आप सोलर तक पहुंचने के लिए इस्तेमाल किए गए फ़िल्टर पेस्ट कर सकते हैं। Solr.log के लिए भी देखें और जब आप उपर्युक्त खोज करते हैं तो लॉग प्रविष्टियों का पता लगाएं। यह सोलर को भेजे गए सटीक पैरामीटर दिखाएगा - जो इसे आगे डीबग करने के लिए पर्याप्त सुराग देगा। –

+0

मैंने जो प्रतिक्रिया पोस्ट की है वह सीधे व्यवस्थापक इंटरफ़ेस का उपयोग करके सोलर से ली गई है और समस्या के अनुरूप है जो मैं इसे हैस्टैक के माध्यम से एक्सेस कर रहा था। इस वजह से SearchQuerySets टूटा हुआ है। –

+0

मैंने उपरोक्त solr.log की सामग्री भी पोस्ट की है। –

उत्तर

7

गॉट: यहाँ solr.log की पूरी सामग्री यह सब, सर्वर शुरू करने के बाद लॉग इन किया गया था उदाहरण के प्रश्नों की एक जोड़ी चल रहा था कोई उत्पादन कर रहे हैं, । समस्या यह थी कि solrconfig.xml सही तरीके से कॉन्फ़िगर नहीं किया गया था। डिफ़ॉल्ट रूप से schemafactory वर्ग ManagedIndexSchemaFactory पर सेट है जो schema.xml के उपयोग को ओवरराइड करता है। schemaFactory को कक्षा ClassicIndexSchemaFactory में बदलकर schema.xml के उपयोग को मजबूर करता है और एपीआई कॉल द्वारा स्कीमा को अपरिवर्तनीय बनाता है।

संबंधित मुद्दे