《深入理解Elasticsearch(原书第2版)》一2.3.3 把查询模板保存到文件

2.3.3 把查询模板保存到文件

抛开之前定义模板的方式不说,我们距离把查询跟应用程序解耦还有相当长的一段路要走。我们能够做的仅仅是把查询语句参数化,而整个查询模板字符串仍然需要保存在应用程序中。幸运的是,有一种简单的方法来改变目前这种查询定义方式,它允许Elasticsearch从config/scripts 目录中动态读取查询模板。
举例来说,让我们创建一个名为bookList.mustache的文件(在config/scripts目录中)。使用如下命令:

接下来我们就可以在查询中用模板名称来使用该文件的内容了(模板名称就是模板文件名称去掉.mustache后缀)。例如,如果我们使用bookList模板,则可以使用如下命令:

 Elasticsearch有一个非常方便的特性:它可以无需重启就检测到模板文件的变更。当然,我们还是需要在每个负责查询的Elasticsearch节点上部署查询模板文件。从Elasticsearch 1.4.0版本开始,你可以把模板索引到一个名为.scripts的特殊索引中。更多相关信息请参考Elasticsearch的官方文档:http://www.Elasticsearch.org/guide/en/Elasticsearch/reference/current/search-template.html

时间: 2024-10-22 06:02:15

《深入理解Elasticsearch(原书第2版)》一2.3.3 把查询模板保存到文件的相关文章

《深入理解Elasticsearch(原书第2版)》——2.3 查询模板

2.3 查询模板 在应用程序迭代的同时,它的运行环境很可能会越来越复杂.在你所处的组织中,很可能同一个应用程序的不同部分分别有专人负责,比如说,至少有一个前端工程师和一个负责数据库层的后端工程师.将应用程序划分为几个模块分别开发的方式非常便捷高效,它能够让开发人员针对程序的不同部分并行进行开发工作,而无需在开发者之间和开发小组内部时刻同步代码.当然,你正在阅读的这本书不是关于项目管理的,而是聚焦于搜索的,因此让我们回到正题上.有时候,我们可以整理出程序使用的所有查询语句交给搜索引擎工程师,让他们

《深入理解Elasticsearch(原书第2版)》——第2章 查询DSL进阶 2.1 Apache Lucene默认评分公式解释

第2章 查询DSL进阶 在上一章,我们了解了什么是Apache Lucene,它的整体架构,以及文本分析过程是如何完成的.之后,我们还介绍了Lucene的查询语言及其用法.除此之外,我们也讨论了Elasticsearch,讨论了它的架构,以及一些核心概念.在本章,我们将深入研究Elasticsearch的查询DSL(Domain Specific Language).在了解那些高级查询之前,我们将先了解Lucene评分公式的工作原理.到本章结束,将涵盖以下内容: Lucene默认评分公式是如何工

《深入理解Elasticsearch(原书第2版)》——2.2 查询改写

2.2 查询改写 之前我们探讨了评分机制,这些知识非常珍贵,特别是当你尝试改进查询相关性时.我们还认为,在对查询进行调试时,也很有必要搞清楚查询是如何执行的.因此我们决定在本节介绍一下查询改写是如何工作的,为什么需要查询改写,以及我们应该如何控制它. 如果你之前使用过诸如前缀查询或通配符查询之类的查询类型,那么你会了解这些都是基于多词项的查询,它们都涉及查询改写.Elasticsearch使用查询改写是出于对性能的考虑.从Lucene的角度来看,所谓的查询改写操作,就是把费时的原始查询类型实例改

《语义网基础教程(原书第3版)》—— 第3章 查询语义网

第3章 查询语义网 在上一章中,我们学会了如何使用RDF来表示知识.当信息被表示为RDF后,出于推理和应用开发的需要,我们需要能够存取其中相关的部分.在本章中,我们将把注意力集中于一个叫做SPARQL的查询语言,它能够让我们通过选择.抽取等方式很容易地从被表示为RDF的知识中获得特定的部分.SPARQL是专为RDF设计的,适合并依赖于万维网上的各种技术.如果你熟悉诸如SQL等数据库查询语言,你会发现SPARQL和它们有很多相似之处.即便你不熟悉-本章也不假设你已熟悉,本章将为你从头开始学习提供一

《语义网基础教程(原书第3版)》—— 3.7 查询模式

3.7 查询模式 重要的是,因为模式(schema)信息是用RDF表示的,SPARQL可以用来查询关于模式本身的信息.例如,以下是上一章中住房本体的一部分. 使用SPARQL,通过同时查询实例数据和模式(schema),我们可以确定数据集中的Residential Units: 注意,我们使用了与Turtle相同的缩写法:用a来表示rdf:type.对模式的查询能力是SPARQL和RDF的一项重要能力,因为它不仅允许检索信息,还可以查询信息的语义.

《深入理解Elasticsearch(原书第2版)》一导读

前 言 欢迎来到Elasticsearch的世界并阅读本书第2版.通过阅读本书,我们将带领你接触与Elasticsearch紧密相关的各种话题.请注意,本书不是为初学者写的.笔者将本书作为<Elasticsearch Server, Second Edition>的续作和姊妹篇.相对于<Elasticsearch Server>,本书涵盖了很多新知识,不过你偶尔也可以在本书中发现一些引自<Elasticsearch Server>的内容. 本书将探讨与Elasticse

《深入理解Elasticsearch(原书第2版)》——导读

前 言 欢迎来到Elasticsearch的世界并阅读本书第2版.通过阅读本书,我们将带领你接触与Elasticsearch紧密相关的各种话题.请注意,本书不是为初学者写的.笔者将本书作为<Elasticsearch Server, Second Edition>的续作和姊妹篇.相对于<Elasticsearch Server>,本书涵盖了很多新知识,不过你偶尔也可以在本书中发现一些引自<Elasticsearch Server>的内容. 本书将探讨与Elasticse

《机器学习与R语言(原书第2版)》一2.3 探索和理解数据

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第2章,第2.3节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 2.3 探索和理解数据 在收集数据并把它们载入R数据结构以后,机器学习的下一个步骤是仔细检查数据.在这个步骤中,你将开始探索数据的特征和案例,并且找到数据的独特之处.你对数据的理解越深刻,你将会更好地让机器学习模型匹配你的学习问题. 理解数据探索的最好方法就是通过例子.在

《机器学习与R语言(原书第2版)》一 第2章 数据的管理和理解

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第2章,第2.1节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 第2章 数据的管理和理解 任何机器学习项目初期的核心部分都是与管理和理解所收集的数据有关的.尽管你可能发现这些工作不像建立和部署模型那样令人有成就感(建立和部署模型阶段就开始看到了劳动的成果),但是忽视这些重要的准备工作是不明智的.任何学习算法的好坏取决于输入数据的好坏.