ElasticSearch默认为每个被索引的文档都定义了一个特殊的域 - '_all',它自动包含被索引文档中一个或者多个域中的内容, 在进行搜索时,如果不指明要搜索的文档的域,ElasticSearch则会去搜索_all域。_all带来搜索方便,其代价是增加了系统在索引阶段对CPU和存储空间资源的开销。
默认情况,ElasticSarch自动使用_all所有的文档的域都会被加到_all中进行索引。可以使用"_all" : {"enabled":false} 开关禁用它。如果某个域不希望被加到_all中,可以使用 "include_in_all":false。例如:
- {
- "person": {
- "_all": { "enabled": true }
- "properties": {
- "name": {
- "type": "object",
- "dynamic": false,
- "properties": {
- "first": {
- "type": "string",
- "store": true,
- "include_in_all": false
- },
- "last": {
- "type": "string",
- "index": "not_analyzed"
- }
- }
- },
- "address": {
- "type": "object",
- "include_in_all": false,
- "properties": {
- "first": {
- "properties": {
- "location": {
- "type": "string",
- "store": true,
- "index_name": "firstLocation"
- }
- }
- },
- "last": {
- "properties": {
- "location": {
- "type": "string"
- }
- }
- }
- }
- },
- "simple1": {
- "type": "long",
- "include_in_all": true
- },
- "simple2": {
- "type": "long",
- "include_in_all": false
- }
- }
- }
- }
查询时,_all和其它域一样使用:
- GET /profiles/_search
- {
- "query": {
- "match": {
- "_all": "food"
- }
- }
- }
或者在不提供搜索域的情况下,默认会搜索_all,例如:
- GET /profiles/_search
- {
- "query": {
- "query_string": {
- "query": "food"
- }
- }
- }
参考资源
相关推荐
《Elasticsearch 7.2.1 + SearchGuard + Kerberos + Kibana 集群测试环境部署详解》 本文档将详细阐述如何在Elasticsearch 7.2.1版本的基础上,集成SearchGuard安全插件、Kerberos认证服务以及Kibana可视化界面,...
4. **Elasticsearch集成**:可以与Elasticsearch搜索引擎配合,实现全文搜索。 5. **Scoping(作用域)**:定义分片的作用域,方便在代码中切换和操作不同的分片。 6. **Chaining(链式调用)**:与其他ActiveRecord...
7. **ES6及后续版本新特性**:ECMAScript 6引入了许多新特性,如箭头函数、模板字符串、类、模块、解构赋值等,后续版本如ES7、ES8等也不断添加新功能,如Async/Await、Promise.all()等。 8. **AJAX与Fetch API**:...
6. **闭包**:闭包是JavaScript中的一个重要概念,它允许函数访问并操作其词法作用域内的变量,即使该函数在其外部被调用。闭包常用于实现私有变量和模块模式。 7. **对象和原型**:JavaScript的继承机制基于原型链...
这样,您无需使用广泛的<all>权限。 注意:此插件包含用于 (适用于Chrome)的 。导游 安装您可以下载并将其包含在manifest.json 。 npm install webext-dynamic-content-scripts // This module is only offered ...
6. **ES6及以后的新特性**:ECMAScript(ES)是JavaScript的标准,ES6(也称为ES2015)引入了许多新特性,如箭头函数、模板字符串、类、模块等。之后的版本如ES7、ES8等也有诸多增强,如async/await、Promise.all等...
`let`和`const`是ES6引入的,提供了块级作用域,而`var`则有函数作用域。 - **数据类型**:JavaScript有七种数据类型,包括基本类型(Number、String、Boolean、Null、Undefined、Symbol和BigInt)以及引用类型...
闭包是JavaScript中的重要概念,它允许函数访问并操作外部作用域的变量,即使该函数在其外部作用域已被销毁。 3. **原型与继承**:JavaScript采用原型链实现对象的继承,每个对象都有一个`__proto__`属性指向它的...
后续版本如ES7、ES8等也增加了许多功能,如async/await、Promise.all、Map和Set等。 七、JavaScript库和框架 JavaScript社区发展迅速,涌现出了许多优秀的库和框架,如jQuery简化DOM操作,React.js和Vue.js用于...
- 变量与作用域:理解var、let和const的差异,以及作用域的概念,包括全局作用域、局部作用域和块级作用域。 - 函数与闭包:掌握函数的定义、调用以及闭包的原理和应用场景。 2. **操作符与控制结构** - 比较...
后续版本如ES7、ES8、ES9也不断加入新功能,如Async/Await、Rest/Spread、Promise.all等。 以上只是JavaScript基础学习的一部分,深入学习还需要理解闭包、作用域、作用域链、this指向、错误处理、类型转换等复杂...
6. **异步编程**:JavaScript是单线程的,通过异步编程处理耗时任务,如定时器(setTimeout、setInterval)、回调函数、Promise(链式调用、all、race)、async/await(基于Promise的异步控制流)。 7. **ES6及后续...
- ES10(ES2019)新增了Array的`flat()`和`flatMap()`方法,`String`的`trimStart()`和`trimEnd()`方法,以及`Object.fromEntries()`等。 4. JS高级特性 - 继承:ES5和ES6提供了多种实现继承的方式,包括原型链...
ECMAScript是JavaScript的标准化规范,ES6(也称ES2015)引入了许多新特性,如箭头函数(`()=>{}`)、模板字符串(``)和类(`class`)。后续的ES7、ES8等版本继续扩展了语言特性,如async/await、Promise.all和...
7. **ES6及更高版本**:ECMAScript(ES)是JavaScript的标准化规格,ES6(也称为ES2015)引入了许多新特性,如箭头函数、模板字符串、类和模块。ES7及以后的版本继续引入新功能,如async/await、Promise.all和解构...
- `Promise.all()`用于并行处理多个异步操作,当所有操作都完成时返回结果。 8. Class与继承: - ES6中的`class`语法糖简化了面向对象编程,但本质仍是基于原型的继承。 - `super`关键字用于访问和调用父类的...
另一种方法是使用`Promise.all`,它可以并行处理多个Promise,并在所有Promise都解析后返回一个包含所有结果的数组。 ```javascript async function fetchData(dataSet) { const pokemonPromises = dataSet.map...
ES6从2015年开始,遵循每年一个新版本的发布节奏,如ES2015、ES2016、ES2017等。ES6不仅为开发者提供了新的语法,同时也引入了许多新的功能和改进,比如let和const关键字、解构赋值、箭头函数、模板字符串等,还提供...
此外,函数是JavaScript的核心,了解函数的定义、调用、作用域及闭包是基础阶段的重点。 2. **面向对象编程** JavaScript的面向对象特性主要体现在原型链、构造函数和实例化过程。理解Object.prototype、__proto__...