क्या यह संभव है ElasticSearch में वाइल्डकार्ड मैच और ngrams गठबंधन करने के लिए? मैं पहले से ही लंबाई 3-11 के ngrams का उपयोग कर रहा हूँ।कैसे ElasticSearch
एक बहुत छोटे से उदाहरण के रूप में, मैं रिकॉर्ड C1239123 और C123है। उपयोगकर्ता इन दोनों को वापस करना चाहता है। C123 12
उपरोक्त मामले में मेरा पूरा मैच विश्लेषक पर काम नहीं करेगा क्योंकि क्वेरी अंत पर 3 याद आ रही है: यह केवल जानकारी वे जानते हैं कि है। मैं इंप्रेशन के तहत था वाइल्डकार्ड मैच बॉक्स से बाहर काम करेगा, लेकिन अगर मैं ऊपर की तरह एक खोज करता हूं तो मुझे गंदगी मिलती है।
क्वेरी:
.Search<ElasticSearchProject>(a => a
.Size(100)
.Query(q => q
.SimpleQueryString(query => query
.OnFieldsWithBoost(b => b
.Add(f => f.Summary, 2.1)
.Add(f => f.Summary.Suffix("ngram"), 2.0)
.Query(searchQuery))));
विश्लेषक:
var projectPartialMatch = new CustomAnalyzer
{
Filter = new List<string> { "lowercase", "asciifolding" },
Tokenizer = "ngramtokenizer"
};
Tokenizer:
.Tokenizers(t=>t
.Add("ngramtokenizer", new NGramTokenizer
{
TokenChars = new[] {"letter","digit","punctuation"},
MaxGram = 11,
MinGram = 3
}))
संपादित करें: मुख्य उद्देश्य उपयोगकर्ता कहां खोज इंजन बताने के लिए अनुमति देने के लिए है अज्ञात अक्षर हैं। यह मैच ऑर्डर को सुरक्षित रखता है। मैं क्वेरी को नग्रम नहीं करता, केवल अनुक्रमित फ़ील्ड।
अधिक परीक्षण के परिणाम के साथ संपादित करें 2: मैं थोड़ा बहुत ज्यादा मेरे पहले उदाहरण सरलीकृत था। विच्छेदन फिल्टर के कारण gibberish जा रहा था। एक उचित उदाहरण के साथ कोई गड़बड़ नहीं है, लेकिन परिणाम प्रासंगिक क्रम में वापस नहीं आते हैं। नीचे देखकर, मुझे यकीन नहीं है कि पहले 2 परिणाम क्यों मेल खाते हैं। Ngram क्वेरी पर लागू नहीं है। ?
c.a123 के लिए सर्च कर रहे हैं .7 0 देता है इस क्रम में परिणाम:
- C.A1234.560
- C.A1234.800
- C.A1234.700 < - यह पहले नहीं होना चाहिए?
- C.A1234.950
आप की कोशिश की 'C123? 12 *' किया? ElasticSearch में वाइल्डकार्ड मैचों और ngrams को गठबंधन करना ठीक है लेकिन आपको समझना होगा कि यह कैसे काम करता है। अन्यथा यह अप्रत्याशित परिणाम वापस आ गया है –
@ Duc.Duong मैंने कोशिश की है। यह परिणाम लौटाता है, लेकिन वे क्वेरी के लिए कोई प्रासंगिकता नहीं दिखते हैं। – Brandon
क्या आप मिलान किए गए परिणाम पोस्ट कर सकते हैं? हम –