मैं पिछले कुछ महीनों से लोचदार खोज के साथ काम कर रहा हूं, लेकिन मुझे जटिल जटिलता उत्तीर्ण होने पर अभी भी जटिल लग रहा है।कई प्रकार के लिए लोचदार खोज क्वेरी पैराम्स (डीएसएल क्वेरी) का उपयोग कैसे करें?
मैं क्वेरी जो एकाधिक "प्रकार" खोज करने के लिए होगा चलाना चाहते हैं और प्रत्येक प्रकार के अपने स्वयं के "फिल्टर" के साथ की खोज की जानी है, लेकिन संयुक्त की है, "खोज परिणाम"
उदाहरण के लिए की जरूरत है:
मुझे "उपयोगकर्ता प्रकार" दस्तावेज़ को खोजने की ज़रूरत है जो मेरे मित्र हैं और साथ ही मुझे प्रदान किए गए कीवर्ड के अनुसार "ऑब्जेक्ट टाइप" दस्तावेज़ को भी खोजना है।
या
क्वेरी है कि दोनों "और" और "नहीं" खंड
उदाहरण क्वेरी:
$options['query'] = array(
'query' => array(
'filtered' => array(
'query' => array(
'query_string' => array(
'default_field' => 'name',
'query' => $this->search_term . '*',
),
),
'filter' => array(
'and' => array(
array(
'term' => array(
'access_id' => 2,
),
),
),
'not' => array(
array(
'term' => array(
'follower' => 32,
),
),
array(
'term' => array(
'fan' => 36,
),
),
),
),
),
),
);
के रूप में इस क्वेरी access_id = 2 के साथ उपयोगकर्ता खोज करने के लिए है , लेकिन आईडी 32 के अनुयायी और आईडी 36
के प्रशंसक नहीं होना चाहिए लेकिन यह काम नहीं कर रहा है ..
संपादित करें: संशोधित क्वेरी
{
"query": {
"filtered": {
"filter": {
"and": [
{
"not": {
"filter": {
"and": [
{
"query": {
"query_string": {
"default_field": "fan",
"query": "*510*"
}
}
},
{
"query": {
"query_string": {
"default_field": "follower",
"query": "*510*"
}
}
}
]
}
}
},
{
"term": {
"access_id": 2
}
}
]
},
"query": {
"field": {
"name": "xyz*"
}
}
}
}
}
अब इस क्वेरी चलाने के बाद, मैं हो रही है दो परिणाम, अनुयायी के साथ एक: "34,518" & प्रशंसक: "510" और दूसरा प्रशंसक के साथ: "34", लेकिन यह परिणाम में केवल दूसरा नहीं होना चाहिए।
कोई विचार?
क्या "नहीं" फ़िल्टर हमेशा "और" फ़िल्टर के अंतर्गत आता है, या यह केवल इस मामले में –
हाय @ डीआरटेक है, मैंने अभी प्रश्न संपादित किया है कृपया जांचें। –
आपका संपादित प्रश्न अन्य समस्याओं का परिचय देता है। मेरा सुझाव है कि आपके द्वारा प्रस्तुत प्रस्तुति के माध्यम से एक नज़र डालें - यह शब्दों और पाठ के बीच अंतर, और कहां उपयोग करने के लिए किस प्रकार के प्रश्न या फ़िल्टर के बीच अंतर बताता है। – DrTech