Elasticsearch的简单使用
Posted qianshuixianyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch的简单使用相关的知识,希望对你有一定的参考价值。
1.索引的建立
存储数据到 Elasticsearch 的行为叫做 索引 ,但在索引一个文档之前,需要确定将文档存储在哪里。
一个 Elasticsearch 集群可以 包含多个 索引 ,相应的每个索引可以包含多个 类型 。 这些不同的类型存储着多个 文档 ,每个文档又有 多个 属性 。
首先了解增删改查的基本头部:
1)GET:获取请求对象的当前状态。
2)POST:改变对象的当前状态。
3)PUT:创建一个对象。
4)DELETE:销毁对象。
5)HEAD:请求获取对象的基础信息
PUT /megacorp/employee/1 { "first_name" : "John", "last_name" : "Smith", "age" : 25, "about" : "I love to go rock climbing", "interests": [ "sports", "music" ] }
注意,路径 /megacorp/employee/1
包含了三部分的信息:
-
megacorp
- 索引名称
-
employee
- 类型名称
-
1
- 特定雇员的ID
同样,再次增加文档依然可以沿用上面代码,分别可以为2,3.....
2.检索文档
GET /megacorp/employee/1
结果便可以看到文档的相应属性和信息,这些属性是ES内部自行运行得到的。
而将固定的文档1变为_search后,便可以查询索引里所有的文档内容。返回结果不仅告知匹配了哪些文档,还包含了整个文档本身:显示搜索结果给最终用户所需的全部信息。
3.高级检索
Elasticsearch 提供一个丰富灵活的查询语言叫做 查询表达式 , 它支持构建更加复杂和健壮的查询。领域特定语言 (DSL), 指定了使用一个 JSON 请求。
GET /megacorp/employee/_search { "query" : { "match" : { "last_name" : "Smith" } } }
检索到的时‘last_name’里含有Smith的文档内容。
4.复杂的检索
GET /megacorp/employee/_search { "query" : { "bool": { "must": { "match" : { "last_name" : "smith" ① } }, "filter": { "range" : { "age" : { "gt" : 30 } ② } } } } }
这部分是一个 |
5.全文搜索
检索特定内容的文档
GET /megacorp/employee/_search { "query" : { "match" : { "about" : "rock climbing" } } }
这里的检索词包含rock和climbing,检索的过程是以单词为基本检索单位的,所以含有两个单词之一或全部含有的文档都会被检索出来。
当然,如果你想只是检索含有全部内容的文档,那么在匹配的时候应该用match_phrase来检索。
6.高亮搜索
GET /megacorp/employee/_search { "query" : { "match_phrase" : { "about" : "rock climbing" } }, "highlight": { "fields" : { "about" : {} } } }
他会在检索后的文档中,标记你所需要查找的内容字符。
"I love to go <em>rock</em> <em>climbing</em>"
这是一个关于 Elasticsearch 基础描述的教程,且仅仅是浅尝辄止,更多诸如 suggestions、geolocation、percolation、fuzzy 与 partial matching 等特性均被省略,以便保持教程的简洁。但它确实突显了开始构建高级搜索功能多么容易。不需要配置——只需要添加数据并开始搜索!
很可能语法会让你在某些地方有所困惑,并且对各个方面如何微调也有一些问题。没关系!本博客后续内容将针对每个问题详细解释,让你全方位地理解 Elasticsearch 的工作原理。
以上是关于Elasticsearch的简单使用的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能
Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能