/ / एरीटेज खोज में ऐरे खोज - जावा, एलेस्टिक्स खोज

एरीटिक्स खोज में ऐरे खोज - जावा, एलेस्टिक्स खोज

मेरे पास 3 दस्तावेज हैं,

{
"category":[{"id":"1"},{"id":"2"},{"id":"3"}]
}

{
"category":[{"id":"1"},{"id":"4"}]
}
{
"category":[]
}

मैं वह दस्तावेज कैसे पा सकता हूं, जिसमें mysql की तरह (2,3) श्रेणी है। यह भी कि किस प्रकार की DSL क्वेरी मुझे java एपीआई क्वेरी बिल्डर में उपयोग करने की आवश्यकता है

उत्तर:

उत्तर № 1 के लिए 1

आप उन सभी दस्तावेज़ों को खोजने के लिए क्लॉस क्वेरी का उपयोग कर सकते हैं, जिनमें अनुरोधित आईडी शामिल हैं। यहां बताया गया है कि क्वेरी DSL कैसे होती है

{
"query": {
"bool": {
"should": [
{"term": {
"category.id": {
"value": "2"
}
}},
{"term": {
"category.id": {
"value": "3"
}
}
}
]
}
}
}

यहाँ आप जावा एपीआई का उपयोग कैसे करेंगे

QueryBuilders.boolQuery().should(QueryBuilders.matchQuery("category.id", "2"))
.should(QueryBuilders.matchQuery("category.id", "1"));

यदि आईडी फ़ील्ड का विश्लेषण नहीं किया गया है, तो आप शर्तों के क्वेरी का उपयोग भी कर सकते हैं। अधिक जानकारी यहाँ https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html


जवाब के लिए 0 № 2

यहां बताया गया है कि आपकी क्वेरी कैसी दिखनी चाहिए:

{
"query": {
"bool": {
"filter": [
{
"term": {
"category.id": "1"
}
},
{
"term": {
"category.id": "2"
}
}
]
}
}
}

जवाब के लिए 0 № 3

इस कदर:

{
"filter": {
"terms": {
"category.id": ["2", "3"]
}
}
}