|
@@ -163,6 +163,7 @@ We could write the query as:
|
|
|
[source,js]
|
|
|
------------------------------------------
|
|
|
{
|
|
|
+ "query": {
|
|
|
"filtered": {
|
|
|
"query": {
|
|
|
"match": {
|
|
@@ -185,6 +186,7 @@ We could write the query as:
|
|
|
{{/line_no}} <2>
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
------------------------------------------
|
|
|
<1> Fill in the value of param `text`
|
|
@@ -196,11 +198,22 @@ We could write the query as:
|
|
|
<6> Include the `lte` clause only if `line_no.end` is specified
|
|
|
<7> Fill in the value of param `line_no.end`
|
|
|
|
|
|
+[NOTE]
|
|
|
+==================================
|
|
|
As written above, this template is not valid JSON because it includes the
|
|
|
-_section_ markers like `{{#line_no}}`. For this reason, the template
|
|
|
-can only be written as a string.
|
|
|
+_section_ markers like `{{#line_no}}`. For this reason, the template should
|
|
|
+either be stored in a file (see <<pre-registered-templates>>) or, when used
|
|
|
+via the REST API, should be written as a string:
|
|
|
+
|
|
|
+[source,json]
|
|
|
+--------------------
|
|
|
+"template": "{\"query\":{\"filtered\":{\"query\":{\"match\":{\"line\":\"{{text}}\"}},\"filter\":{{{#line_no}}\"range\":{\"line_no\":{{{#start}}\"gte\":\"{{start}}\"{{#end}},{{/end}}{{/start}}{{#end}}\"lte\":\"{{end}}\"{{/end}}}}{{/line_no}}}}}}"
|
|
|
+--------------------
|
|
|
+
|
|
|
+==================================
|
|
|
|
|
|
[float]
|
|
|
+[[pre-registered-templates]]
|
|
|
===== Pre-registered template
|
|
|
|
|
|
You can register search templates by storing it in the `config/scripts` directory, in a file using the `.mustache` extension.
|