Technology sharing

Elasticsearch search templates: reuse and share queries

2024-07-12

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

In cotidiana evolutione et operatione Elasticae inquisitionis (ES), missiones saepe invenimus ubi similes interrogationes frequenter exsecutioni mandandae sunt. Hae interrogationes multiplices agros, condiciones sparguntur, et analysin aggregati ex multiplicitate negotii logicae. Ut has operationes optimizes et efficientiam evolutionis meliorem efficiant, elasticas inquisitionis munus praebet exempla inquisitionis. Hic articulus explicat quomodo templates investigationis elasticas utendi quaerendi causa quaerendi.

1. Quid utar search templates

In cotidiana evolutione, licet plurimae interrogationes sint relative simplices, in missionibus quibusdam implicatis (sicut rebus oeconomicis, medicina, etc.), pervestigatio opus est ut in justos agrorum vel revertatur, et implicatas condiciones eliquationem et aggregationem implicat . In hoc puncto, singulae interrogationes manually scribentes non solum inhabilis est, sed etiam errorum proclivior. Formulae quaerendi sunt sicut processus vel munera in MySQL condita. Solum semel definiri opus est, et munus inquisitionis postea in codice perfici potest vocando templates et parametros transeuntes, qui evolutionem efficientiam et interrogationem flexibilitatem valde meliorem efficiunt.

2. Formulae inquisitionis causa introductoria

2.1 Latin form

Forma fundamentalis quaestionis templates est rem JSON definire, condiciones quaesitionis continere et transire_search/template API vocat. Exempli gratia:

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

In hoc exemplo;{{kw}}et{{size}}variabilis est in Formula, TransieruntparamsObjects valores specificos transibunt.

2.2 toJSON format

toJSONForma notatursource chordis utere ad definiendum, et ingenia effugia requiruntur. Exempli gratia:

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

2.3 Transiens parametri in modum iungere

ususjoin Methodus elementa quae in ordinata sunt in filo pro condiciones interrogationis concatenare potest. Exempli gratia:

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

2.4 Default valorem forma

Valores default pro parametris in template. Exempli gratia:

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. Memorare exemplum et effectum deducendi repetita vocat

3.1 Elasticsearch nisi template

Ut Formulae reuse, eam in elastica investigatione servare possumus. Nominando nomen Formulae, saepe postea opportunum est appellare. Exempli gratia:

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

3.2 Voca template

Formula, cum vocant, passid Specificare specifice templates ac parametri correspondentes transmittere. Exempli gratia:

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

3.3 Query definitum template

Formulae formulae definitae queri possunt per petitiones GET, exempli gratia:

GET _scripts/my_test_template
  • 1

3.4 Delere definitum template

Si exemplum definitum debes delere, petitionem delere potes, exempli gratia:

DELETE _scripts/my_test_template
  • 1

4. Provectus applicationis inquisitionis Templates

4.1 Verification template

Elasticsearch praebet_render/template API Formula ad convalidandum.