2015-06-30 15 views
6

में अल्पविराम से अलग मूल्य फ़ील्ड को इंडेक्स करना मैं साइट को क्रॉल करने और इसे लोचदार खोज में अनुक्रमणित करने के लिए नच का उपयोग कर रहा हूं। मेरी साइट में मेटा टैग हैं, उनमें से कुछ में आईडी की अल्पविराम से अलग सूची शामिल है (जिसे मैं खोज के लिए उपयोग करना चाहता हूं)। उदाहरण के लिए:लोचदार खोज

contentTypeIds = "2,5,15"। (नोट: कोई वर्ग ब्रैकेट नहीं)।

जब ईएस इसे अनुक्रमित करता है, तो मैं सामग्री की खोज नहीं कर सकता टाइप टाइप: 5 और दस्तावेजों को ढूंढें जिनकी सामग्री टाइप प्रकार में 5 शामिल हैं; यह क्वेरी केवल उन दस्तावेजों को लौटाती है जिनकी सामग्री टाइप टाइप वास्तव में "5" है। हालांकि, मैं दस्तावेजों को ढूंढना चाहता हूं जिनके कंटेंट टाइप टाइप में 5.

सोलर में, यह सामग्री टाइप टाइप फ़ील्ड को schema.xml में multivalued = "true" में सेट करके हल किया जाता है। मैं नहीं जानता कि ईएस में कुछ ऐसा कैसे करें।

मैं ईएस के लिए नया हूं, इसलिए शायद मुझे कुछ याद आया। आपकी सहायताके लिए धन्यवाद!

उत्तर

11

custom analyzer बनाएं जो अनुक्रमित टेक्स्ट को कॉमा द्वारा टोकन में विभाजित करेगा।

फिर आप खोज करने का प्रयास कर सकते हैं। यदि आपको प्रासंगिकता की परवाह नहीं है तो आप अपने दस्तावेज़ों के माध्यम से फ़िल्टर का उपयोग कर सकते हैं। मेरा उदाहरण दिखाता है कि आप term filter के साथ खोज का प्रयास कैसे कर सकते हैं।

नीचे आप समझ सकते हैं कि यह प्लगइन के साथ कैसे करें।

DELETE testindex 

PUT testindex 
{ 
    "index" : { 
     "analysis" : { 
      "tokenizer" : { 
       "comma" : { 
        "type" : "pattern", 
        "pattern" : "," 
       } 
      }, 
      "analyzer" : { 
       "comma" : { 
        "type" : "custom", 
        "tokenizer" : "comma" 
       } 
      } 
     } 
    } 
} 

PUT /testindex/_mapping/yourtype 
{ 
     "properties" : { 
      "contentType" : { 
       "type" : "string", 
       "analyzer" : "comma" 
      } 
     } 
} 

PUT /testindex/yourtype/1 
{ 
    "contentType" : "1,2,3" 
} 

PUT /testindex/yourtype/2 
{ 
    "contentType" : "3,4" 
} 

PUT /testindex/yourtype/3 
{ 
    "contentType" : "1,6" 
} 

GET /testindex/_search 
{ 
    "query": {"match_all": {}} 
} 

GET /testindex/_search 
{ 
    "filter": { 
     "term": { 
      "contentType": "6" 
     } 
    } 
} 

उम्मीद है कि यह मदद करता है।

+0

ठीक काम करता है, बहुत बहुत धन्यवाद! – Yann

+0

और यह नच इंडेक्सिंग के साथ भी काम किया! – Yann

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