प्रौद्योगिकी साझेदारी

Elasticsearch अन्वेषण टेम्पलेट्: पुनः उपयोगं कुर्वन्तु तथा च प्रश्नान् साझां कुर्वन्तु

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Elasticsearch (ES) इत्यस्य दैनिकविकासे संचालने च प्रायः एतादृशाः परिदृश्याः सम्मुखीभवन्ति यत्र समानप्रश्नानां बहुधा निष्पादनस्य आवश्यकता भवति । एतेषु प्रश्नेषु व्यावसायिकतर्कस्य जटिलतायाः कारणात् बहुक्षेत्राणि, फ़िल्टर-स्थितयः, समुच्चय-विश्लेषणं च सम्मिलितं भवितुम् अर्हति । एतेषां कार्याणां अनुकूलनार्थं विकासदक्षतां च सुधारयितुम् Elasticsearch अन्वेषणसारूप्यानां कार्यं प्रदाति । अस्मिन् लेखे प्रश्नानां पुनः उपयोगाय, साझेदारी कर्तुं च Elasticsearch’s search templates इत्यस्य उपयोगः कथं करणीयः इति व्याख्यायते ।

1. अन्वेषणसारूप्यस्य उपयोगः किमर्थम्

दैनिकविकासे, यद्यपि अधिकांशप्रश्नाः तुल्यकालिकरूपेण सरलाः भवेयुः, तथापि केषुचित् जटिलव्यापारपरिदृश्येषु (यथा वित्तं, चिकित्सा इत्यादिषु), अन्वेषणस्य दर्जनशः क्षेत्राणि पारयितुं वा प्रत्यागन्तुं वा आवश्यकं भवितुम् अर्हति, तथा च जटिलछननस्थितयः विश्लेषणं च सम्मिलितं भवति . अस्मिन् क्षणे प्रत्येकं प्रश्नं हस्तचलितरूपेण लेखनं न केवलं अकुशलं भवति, अपितु त्रुटिप्रवणम् अपि भवति । अन्वेषण टेम्पलेट् MySQL मध्ये संगृहीतप्रक्रियाः अथवा कार्याणि इव सन्ति तेषां केवलं एकवारं परिभाषितुं आवश्यकं भवति, तथा च अन्वेषणकार्यं पश्चात् कोडमध्ये टेम्पलेट् आह्वयित्वा पैरामीटर् पारयित्वा सम्पन्नं कर्तुं शक्यते, यत् विकासदक्षतायां प्रश्नलचीलतां च बहुधा सुधारयति

2. अन्वेषणसाचायाः परिचयात्मकः प्रकरणः

२.१ मानकरूपम्

अन्वेषणसाचायाः मूलरूपं प्रश्नशर्ताः युक्तं JSON वस्तु परिभाषितुं पासं च भवति_search/template एपिआइ आह्वानम्। उदाहरणतया:

GET /index_name/_search/template
{
  "source": {
    "query": {
      "match": {
        "remark": "{{kw}}"
      }
    },
    "size": "{{size}}"
  },
  "params": {
    "kw": "真正的数值",
    "size": 100
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

अस्मिन् उदाहरणे .{{kw}}तथा{{size}}टेम्पलेट् मध्ये एकः चरः अस्ति, पारितःparamsवस्तुनि विशिष्टमूल्यानि पारयन्ति ।

२.२ toJSON प्रारूपम्

toJSONरूपलक्षणं भवतिsource परिभाषितुं तारानाम् उपयोगं कुर्वन्तु, पलायनवर्णाः च आवश्यकाः सन्ति । उदाहरणतया:

GET cars/_search/template
{
  "source": "{ "query": { "match": {{#toJson}}parameter{{/toJson}} }}",
  "params": {
    "parameter": {
      "remark": "真正的数值"
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

२.३ join मेथड् इत्यस्मिन् पैरामीटर्स् पासिंग्

उपयुञ्जताम्‌join विधिः प्रश्नस्थितीनां कृते सरणीस्थानि तत्त्वानि स्ट्रिंग् मध्ये संयोजयितुं शक्नोति । उदाहरणतया:

GET index_name/_search/template
{
  "source": {
    "query": {
      "match": {
        "remark": "{{#join delimiter=' '}}kw{{/join delimiter=' '}}"
      }
    }
  },
  "params": {
    "kw": ["大众", "标致", "奔驰", "宝马"]
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

२.४ पूर्वनिर्धारितं मूल्यरूपम्

भवान् टेम्पलेट् मध्ये पैरामीटर् कृते पूर्वनिर्धारितमूल्यानि सेट् कर्तुं शक्नोति यदि आह्वानं कुर्वन् पैरामीटर् पारितः न भवति तर्हि पूर्वनिर्धारितमूल्यं उपयुज्यते । उदाहरणतया:

GET index_name/_search/template
{
  "source": {
    "query": {
      "range": {
        "price": {
          "gte": "{{start}}",
          "lte": "{{end}}{{^end}}200000{{/end}}"
        }
      }
    }
  },
  "params": {
    "start": 100000
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

3. टेम्पलेट् कण्ठस्थं कृत्वा पुनः पुनः आह्वानं कार्यान्वितम्

3.1 Elasticsearch save टेम्पलेट्

टेम्पलेट् इत्यस्य पुनः उपयोगाय वयं Elasticsearch इत्यत्र सेव् कर्तुं शक्नुमः । टेम्पलेट् इत्यस्य नाम निर्दिश्य पश्चात् पुनः पुनः आह्वयितुं सुविधा भवति । उदाहरणतया:

POST _scripts/my_test_template
{
  "script": {
    "lang": "mustache",
    "source": {
      "query": {
        "match": {
          "field_name": "{{kw}}"
        }
      }
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

३.२ आह्वान टेम्पलेट्

टेम्पलेट् आह्वयति समये, पास कुर्वन्तुid विशिष्टं टेम्पलेट् निर्दिष्टुं तदनुरूपं मापदण्डं च पारयितुं । उदाहरणतया:

GET index_name/_search/template
{
  "id": "my_test_template",
  "params": {
    "kw": "自定义template的参数值"
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.3 परिभाषितं टेम्पलेट् पृच्छन्तु

परिभाषितं टेम्पलेट् सूचनां GET अनुरोधानाम् माध्यमेन पृच्छितुं शक्यते, उदाहरणार्थं:

GET _scripts/my_test_template
  • 1

३.४ परिभाषितं टेम्पलेट् विलोपयन्तु

यदि भवान् परिभाषितं टेम्पलेट् विलोपयितुं इच्छति तर्हि DELETE अनुरोधस्य उपयोगं कर्तुं शक्नोति, उदाहरणार्थं:

DELETE _scripts/my_test_template
  • 1

4. अन्वेषण टेम्पलेट् इत्यस्य उन्नत अनुप्रयोगः

४.१ सत्यापन टेम्पलेट्

Elasticsearch प्रदाति_render/template टेम्पलेट् प्रमाणीकरणार्थं एपिआइ ।