我嘗試使用ES的搜索模板來執行條件子句here。我正在將我的請求發送到/ [my_index]/_ search/template端點。由於JSON解析問題,請求失敗,這很有意義,因爲在添加條件子句之後,負載不再是有效的JSON。我應該如何使用搜索模板?是否有非JSON模板的指定端點?Elasticsearch搜索模板
0
A
回答
0
您需要在包裝字符串中轉義模板。
從你引用的同一鏈接:
正如上面寫的,這個模板是不是有效的JSON,因爲它包括 部分標記像{{#line_no}}。爲此,模板 要麼被存儲在一個文件中(參見稱爲 節「預註冊templateedit」)通過REST API一起使用時,或者,應該 寫成一個字符串:
「模板「:{\」query \「:{\」filtered \「:{\」query \「:{\」match \「:{\」line \「:\」{{text}} \「}}」 ,\ 「過濾器\」:{{{#LINE_NO}} \ 「範圍\」:{\ 「LINE_NO \」:{{{#開始}} \ 「GTE \」:\ 「{{開始}} \」{ {#END}},{{/結束}} {{/啓動}} {{#結束}} \ 「LTE \」:\ 「{{端}} \」{{/結束}}}} {{/ 「
2
當使用條件子句時,模板將不是有效的JSON,因爲它將包含段標記{{#像這樣}}。原因,模板應該存儲在一個文件中,或者當通過REST API使用時,應該寫成一個字符串。
方法1:存儲在一個文件
保存模板的配置/腳本的查詢部分
ES安裝>配置>腳本
test_template tempalte。小鬍子
{ "query":{ whatever query } }
您可以通過此方法通過使用感保存的模板
GET /_search/template { "template": "test_template", "params": { whatever params } }
方法2:模板作爲字符串寫入
模板轉換爲字符串形式和通過休息api使用
POST/_search/template/test_template { 「template」:「{\」query \「:{whatever query;記得逃脫引號}} 「 }
要搜索使用這個模板,
GET/_search /模板 { 」模板「:{ 」ID「: 」test_template「 }, 」 PARAMS「:{ 任何PARAMS }}
相關問題
- 1. 搜索模糊查詢 - Elasticsearch
- 2. ElasticSearch索引模板版本
- 3. Elasticsearch更新索引模板
- 4. id搜索elasticsearch
- 5. 搜索elasticsearch
- 6. Elasticsearch搜索詞
- 7. ElasticSearch搜索
- 8. 如何獲取Elasticsearch 5.x中的搜索模板列表?
- 9. 如何在elasticsearch中執行搜索模板查詢?
- 10. 使用ElasticSearch模擬SQL LIKE搜索
- 11. 跨Elasticsearch羣集更改索引模板
- 12. Logstash一直覆蓋Elasticsearch索引模板
- 13. 用Golang搜索Elasticsearch
- 14. ElasticSearch搜索性能
- 15. ElasticSearch-Net NEST搜索
- 16. Elasticsearch搜索複數
- 17. 搜索,其中Elasticsearch
- 18. 在ElasticSearch中搜索
- 19. 在elasticsearch中搜索
- 20. Elasticsearch親子搜索
- 21. ElasticSearch全文搜索
- 22. Elasticsearch多項搜索
- 23. Dwoo模板搜索路徑
- 24. LDAP模板搜索屬性
- 25. 終止模板搜索
- 26. 搜索在模板樹
- 27. 彈性搜索索引模板創建
- 28. Elasticsearch動態模板
- 29. elasticsearch動態模板
- 30. Elasticsearch搜索像谷歌
您是否嘗試將模板存儲爲'config/scripts'目錄中的文件?參見[文檔中的預先註冊的模板](http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-template.html#_pre_registered_template)。 – Thorsten 2014-10-28 19:11:56