2012-11-28 23 views
8

के साथ टाइपिंगहेड स्वत: पूर्ण का समर्थन करना छोटे क्षेत्रों (जैसे स्थान नाम) के लिए लोचदार खोज का उपयोग करके चरित्र-दर-चरित्र टाइपहेड स्वत: पूर्ण करने के लिए एक मानक तरीका है।लोचदार खोज

(लिखने के समय, खोज के माध्यम से कई चर्चाएं उपलब्ध हैं, लेकिन कुछ भी निश्चित नहीं लगता है। (इसके अलावा, मुझे लगता है कि अपाचे ल्यूसीन 4 में स्वत: पूर्ण/सुझाव के लिए फीचर समर्थन के प्रभाव की बात है ।))

विचारों के लिए धन्यवाद।

उत्तर

9

आप एज NGram आधारित विश्लेषक का उपयोग कर सकते हैं, को देखने के http://www.elasticsearch.org/guide/reference/index-modules/analysis/edgengram-tokenizer.html

या सुझाव है प्लगइन का उपयोग: https://github.com/spinscale/elasticsearch-suggest-plugin

HTH

+0

उपयोग का सरल उदाहरण NGram: https://gist.github.com/988923 –

3

डेविड के रूप में लिखा है, आप NGrams उपयोग कर सकते हैं या प्लगइन सुझाव देते हैं। ल्यूसीन 4 के साथ एक अलग इंडेक्स की आवश्यकता के बिना, बिना ऑटो-सुझावों के बेहतर ऑटो-सुझाव होना संभव होगा।

अभी के लिए आप भी सिर्फ अपने मैदान पर एक terms facet बनाने के लिए और एक regex पैटर्न का उपयोग केवल प्रविष्टियों को प्रासंगिक उपसर्ग के साथ शुरू रखने के लिए कर सकते हैं:

"facets" : { 
    "tag" : { 
     "terms" : { 
      "field" : "field_name", 
      "regex" : "prefix.*" 
     } 
    } 
} 

regex है सिर्फ एक उदाहरण है, यह हो सकता है बेहतर और आप उचित regex flag का उपयोग कर केस असंवेदनशील बना सकते हैं। साथ ही, सावधान रहें कि एक ऐसे क्षेत्र पर एक पहलू बनाना जिसमें कई अद्वितीय शब्द शामिल हैं, यह एक अच्छा विचार नहीं है, जब तक कि आपके पास पर्याप्त स्मृति न हो।

3

उपयोग में निर्मित स्वतः पूर्ण Suggester उस संस्करण 0.90.3 के बाद से उपलब्ध है:

http://www.elastic.co/guide/en/elasticsearch/reference/master/search-suggesters-completion.html

यह blazingly तेजी से है और वास्तव में है कि उपयोग के मामले के लिए विकसित किया गया था।

+0

बीटीडब्लू @ सिमॉन नई समाप्ति उपसर्ग सुझाव सुविधा 0.90.0 पर नहीं है लेकिन 0.90.3 (और अभी भी प्रयोगात्मक माना जाता है)। https://github.com/elasticsearch/elasticsearch/issues/3376 – Ran

+0

सच बहुत तेज़ है, लेकिन MySQL LIKE उपसर्ग * या रेडिस/कॉचबेस ऑटो-पूर्ण का उपयोग करने की तुलना में वही बात है। –

+0

उत्तर में लिंक अब मौजूद नहीं है। यह नए लोगों के लिए मदद हो सकती है! http://www.elastic.co/guide/en/elasticsearch/reference/master/search-suggesters.html –