Elasticsearch 入门实战(3)–REST API 使用

本文主要介绍 Elasticsearch REST API 的使用,相关的环境及软件信息如下:CentOS 7.6.1810、Elasticsearch 8.2.2。

1、REST API 使用方法

说明:

请求方法,如:GET,POST,PUT,HEAD 或 DELETE

协议,http 或 https

Elasticsearch 服务端口,默认为9200

API 端点

请求参数

JSON 格式的请求体

2、Compact and aligned text (CAT) APIs

cat API 是提供给人在 Kibana 控制台或命令行中使用的,不适合应用程序调用。

3、Index APIs

同时设置了 setting 和 mapping 信息;setting 里面包含分片和副本信息,mapping 里包含字段设置的详细信息。

字段可以新增,已有的字段只能修改字段的 search_analyze r属性。

4、Document APIs

A、设置 id 为 1

B、不设置 id,将自动生成

C、批量新增文档

注意:最后一行空白是必填项,否则将报告错误。

[En]

Note: the last blank line is required, otherwise an error will be reported.

只更新参数设置的字段。

没有对应 id 的文档就创建,有就覆盖更新所有的字段(相当于先删除再新增)。

5、Search APIs

term 查询不会对输入的内容进行分词处理,而是作为一个整体来查询。

A、查询单个词

B、查询多个词

对输入的内容进行分词,然后根据分词进行查询。

[En]

Carry on the word segmentation to the input content, and then query according to the word segmentation.

多字段匹配。

匹配整个查询字符串。

查询所有数据。

query_string 可以同时实现前面几种查询方法。

A、类似 match

B、类似 mulit_match

C、类似 match_phrase

D、带运算符查询,运算符两边的词不再分词

1、查询同时包含 “文学” 和 “伟大” 的文档

2、查询 name 或 success 字段包含”文学”和”伟大”这两个单词,或者包含”李白”这个单词的文档。

类似 query_string,主要区别如下:

1、不支持AND OR NOT ,会当做字符处理;使用 + 代替 AND,| 代替OR,- 代替 NOT
2、会忽略错误的语法

查询同时包含 “文学” 和 “伟大” 的文档:

模糊查询时使用的参数:

fuzziness

允许的最大编辑距离,默认不开启模糊查询,相当于 fuzziness=0。支持的格式

1、可以是数字(0、1、2)代表固定的最大编辑距离

2、自动模式,AUTO:[low],[high]

查询词长度在 [0-low)范围内编辑距离为 0(即强匹配)

查询词长度在 [low, high) 范围内允许编辑 1 次

查询词长度 >high 允许编辑 2 次

prefix_length

控制两个字符串匹配的最小相同的前缀大小,也就是前 n 个字符不允许编辑,必须与查询词相同,默认是 0,大于 0 时可以显著提升查询性能

max_expansions

产生的最大模糊选项

transpositions

相邻位置的字符互换是否计入编辑距离。全文查询不支持此参数。

[En]

Whether the interchange of characters in adjacent positions is counted as an editing distance. This parameter is not supported in full-text query.

A、全文查询时使用模糊参数

先分词再计算模糊选项。

B、使用 fuzzy query

对于没有分词的输入,直接计算模糊选项。

[En]

For the input without word segmentation, the fuzzy option is calculated directly.

组合查询使用 bool 来组合多个查询条件。

must

同时满足

should

满足其中任意一个

must_not

同时不满足

filter

过滤搜索,不计算得分

A、查询 success 包含 “思想” 且 age 在 [20-40] 之间的文档:

B、过滤出 success 包含 “思想” 且 age 在 [20-40] 之间的文档,不计算得分:

A、求和

B、类似 select count distinct(age) from poet-index

C、数量、最大、最小、平均、求和

D、类似 select name,count(*) from poet-index group by name

E、类似 select name,age, count(*) from poet-index group by name,age

F、类似 select avg(age) from poet-indexwhere name=’李白’

如果希望 Elasticsearch 能够根据我们的搜索内容给一些推荐的搜索选项,可以使用推荐搜索。

推荐模式 suggest_mode:

推荐模式

popular

推荐词频更高的一些搜索

missing

当没有搜索结果时,建议使用此选项。

[En]

It is recommended when there are no search results.

always

无论在什么情况下都要提出建议

[En]

Make recommendations no matter what the circumstances

突出显示搜索结果中的关键字。

[En]

Highlight the keywords in the search results.

Elasticsearch 支持通过 SQL 查询数据。

详细的 Elasticsearch REST API 使用说明,请参考官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html。

Original: https://blog.51cto.com/wuyongyin/5478433
Author: 且行且码
Title: Elasticsearch 入门实战(3)–REST API 使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/508487/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球