मैं कुछ विशेषताओं जैसे nGrams और समानार्थी काम करने की कोशिश कर रहा हूं लेकिन मुझे कोई भाग्य नहीं है।लोचदार खोज आंशिक खोज मिलान
मैं this blog post का अनुसरण कर रहा हूं। मैंने अपने डेटा में मैपिंग और प्रश्नों को अपनाने का प्रयास किया है, और यह केवल सटीक शर्तों से मेल खाएगा। मैंने उसी परिणाम के साथ this gist से आलेख से सटीक डेटा का उपयोग करने का भी प्रयास किया।
यहाँ मानचित्रण है:
{
"size":20,
"from":0,
"sort":[
"_score"
],
"query": {
"bool": {
"should":[
{
"text": {
"productName": {
"boost":5,
"query":"test query",
"type":"phrase"
}
}
},
{
"text": {
"productName.partial": {
"boost":1,
"query":"test query"
}
}
},
{
"text": {
"productName.partial_middle": {
"boost":1,
"query":"test query"
}
}
},
{
"text": {
"productName.partial_back": {
"boost":1,
"query":"test query"
}
}
}
]
}
}
}
सार से ऊपर क्वेरी का उपयोग करता है, तो मैं:
{
"mappings": {
"item": {
"properties": {
"productName": {
"fields": {
"partial": {
"search_analyzer":"full_name",
"index_analyzer":"partial_name",
"type":"string"
},
"partial_back": {
"search_analyzer":"full_name",
"index_analyzer":"partial_name_back",
"type":"string"
},
"partial_middle": {
"search_analyzer":"full_name",
"index_analyzer":"partial_middle_name",
"type":"string"
},
"productName": {
"type":"string",
"analyzer":"full_name"
}
},
"type":"multi_field"
},
"productID": {
"type":"string",
"analyzer":"simple"
},
"warehouse": {
"type":"string",
"analyzer":"simple"
},
"vendor": {
"type":"string",
"analyzer":"simple"
},
"productDescription": {
"type":"string",
"analyzer":"full_name"
},
"categories": {
"type":"string",
"analyzer":"simple"
},
"stockLevel": {
"type":"integer",
"index":"not_analyzed"
},
"cost": {
"type":"float",
"index":"not_analyzed"
}
}
},
"settings": {
"analysis": {
"filter": {
"name_ngrams": {
"side":"front",
"max_gram":50,
"min_gram":2,
"type":"edgeNGram"
},
"name_ngrams_back": {
"side":"back",
"max_gram":50,
"min_gram":2,
"type":"edgeNGram"
},
"name_middle_ngrams": {
"type":"nGram",
"max_gram":50,
"min_gram":2
}
},
"analyzer": {
"full_name": {
"filter":[
"standard",
"lowercase",
"asciifolding"
],
"type":"custom",
"tokenizer":"standard"
},
"partial_name": {
"filter":[
"standard",
"lowercase",
"asciifolding",
"name_ngrams"
],
"type":"custom",
"tokenizer":"standard"
},
"partial_name_back": {
"filter":[
"standard",
"lowercase",
"asciifolding",
"name_ngrams_back"
],
"type":"custom",
"tokenizer":"standard"
},
"partial_middle_name": {
"filter":[
"standard",
"lowercase",
"asciifolding",
"name_middle_ngrams"
],
"type":"custom",
"tokenizer":"standard"
}
}
}
}
}
}
और खोज प्रश्न (मैं और अधिक परिणाम देने के प्रयास करने के लिए फिल्टर हटा दिया) पहले बूल क्वेरी
"text":{
"productName":{
"boost":5,
"query":"test query",
"type":"phrase"
}
}
से निम्न कोड को हटा दें, इसलिए यह सीधे मिलान नहीं करेगा, n ओ मेरी खोज शब्द क्या है, मैं अभी भी कोई परिणाम नहीं लौटाता हूं।
मुझे लगता है कि मुझे कुछ चमकदार रूप से स्पष्ट याद आ रही है, और वास्तव में यह नहीं पता कि अन्य जानकारी क्या प्रासंगिक है, इसलिए कृपया इसे आसान बनाएं।
क्या आप अपना मानचित्रण कृपया पोस्ट कर सकते हैं! 'curl http: // domain.com/index/type/_mapping' बस इसे सही तरीके से सेट अप करने के लिए जांचें। – ramseykhalaf
इसके अलावा 'टेक्स्ट' बहिष्कृत है,' मिलान' का उपयोग करें! – ramseykhalaf
@ramseykhalaf आपने इसे हल किया है, मैंने पहले मैपिंग खींचा है और जेसन को देखा है और मान लीजिए कि यह सही था, लेकिन वास्तव में इसे देखकर मैंने देखा कि यह सब गड़बड़ हो गया था। मैं आपको जवाब में जवाब दूंगा! – Rockstar04