नीचे दिए गए मेरे कोड का उपयोग कर सूचकांक elasticsearch.Index उत्पन्न हो रही है successfully.Basically मैं इसे उपयोग कर रहा हूँ फिल्म का नाम, अभिनेता नाम और gener पर निर्भर करता है autosuggest उत्पन्न करने के लिए उत्पन्न करने के लिए है।Elasticsearch मैच सबस्ट्रिंग
अब मेरी आवश्यकता है, मुझे विशेष क्षेत्र के साथ सबस्ट्रिंग मैच करना होगा। अगर मैं $params['body']['query']['wildcard']['field'] = '*sub_word*';
का उपयोग करता हूं तो यह ठीक काम कर रहा है। (यानी 'टू' के लिए खोज 'टॉम क्रुज़' देता है लेकिन 'टॉम क्र' के लिए खोज कोई परिणाम नहीं देता है) ।
यह string.I में केवल विशेष शब्द से मेल खाता है कई शब्दों से युक्त सबस्ट्रिंग का मिलान करना चाहते हैं (यानी। 'टॉम kr' लौटना चाहिए 'टॉम Kruz')।
मुझे कुछ दस्तावेज़ मिलते हैं, यह कहते हुए कि यह 'ngram' का उपयोग करना संभव होगा। लेकिन मैं नहीं जानता, कैसे मैं अपने कोड में लागू करना चाहिए जैसा कि मैंने elasticsearch के लिए सरणी आधारित विन्यास का उपयोग कर रहा है और सभी का समर्थन डॉक्स json fromat में विन्यास का उल्लेख कर रहे हैं।
कृपया मदद करें। अपना खोज शब्द बनाने के लिए
require 'vendor/autoload.php';
$client = \Elasticsearch\ClientBuilder::create()
->setHosts(['http://localhost:9200'])->build();
/*************Index a document****************/
$params = ['body' => []];
$j = 1;
for ($i = 1; $i <= 100; $i++) {
$params['body'][] = [
'index' => [
'_index' => 'pvrmod',
'_type' => 'movie',
'_id' => $i
]
];
if ($i % 10 == 0)
$j++;
$params['body'][] = [
'title' => 'salaman khaan'.$j,
'desc' => 'salaman khaan description'.$j,
'gener' => 'movie gener'.$j,
'language' => 'movie language'.$j,
'year' => 'movie year'.$j,
'actor' => 'movie actor'.$j,
];
// Every 10 documents stop and send the bulk request
if ($i % 10 == 0) {
$responses = $client->bulk($params);
// erase the old bulk request
$params = ['body' => []];
unset($responses);
}
}
// Send the last batch if it exists
if (!empty($params['body'])) {
$responses = $client->bulk($params);
}
प्रिय कॉस्टा, उत्तर के लिए धन्यवाद। लेकिन सिर्फ एक प्रश्न है, क्या आप निश्चित हैं, व्यक्तिगत शब्दों के लिए वाइल्डकार्ड खोज चलाना मुझे बहुउद्देशीय उप-स्ट्रिंग से मेल खाने वाले सबसे प्रासंगिक परिणाम देगा? –