Search types 搜索类型

Match All

  1. {
  2. "query": {
  3. "match_all": {}
  4. }
  5. }

Match

  1. {
  2. "query": {
  3. "match": {
  4. "field": "query string"
  5. }
  6. }
  7. }

匹配查询类似于 term 查询,但首先对输入文本进行分析。在字段被索引时使用相同的分析器尝试进行匹配。

匹配查询可以可选地进行模糊匹配。如果将 fuzziness 参数设置为非零整数,则分析后的文本将以指定级别的模糊性进行匹配。另外,可以使用prefix_length参数来要求词项具有相同长度的前缀。

Match Phrase - 匹配短语

  1. {
  2. "query": {
  3. "match_phrase": {
  4. "field": "query string"
  5. }
  6. }
  7. }

匹配短语查询类似于短语查询,但首先对输入文本进行分析,然后使用分析结果构建短语查询。

Term 查询

  1. {
  2. "query": {
  3. "term": {
  4. "field": "word"
  5. }
  6. }
  7. }

词项查询搜索确切的词项。

例如,term 查询是最简单的可能的查询。它在索引中对提供的词项进行精确匹配。

大多数情况下,用户应该使用 Match 查询。

Query String - 查询字符

  1. {
  2. "query": {
  3. "query_string": {
  4. "query": "query string +other word +content:test"
  5. }
  6. }
  7. }

查询语言查询允许人类使用简单的语法描述复杂的查询。

Prefix - 前缀查询

  1. {
  2. "query": {
  3. "prefix": {
  4. "field": "qu"
  5. }
  6. }
  7. }

前缀查询查找包含以提供的前缀开头的术语的文档。

Wildcard - 通配符

  1. {
  2. "query": {
  3. "wildcard": {
  4. "field": "qu*"
  5. }
  6. }
  7. }

通配符查询查找包含以提供的通配符开头的术语的文档。

Fuzzy 查询

  1. {
  2. "query": {
  3. "fuzzy": {
  4. "field": "qurey"
  5. }
  6. }
  7. }

Fuzzy 查询是一种模糊查询,它可以在指定的编辑距离内创建一组搜索词的所有可能的变体或扩展。查询然后返回每个扩展的完全匹配。

Range 范围查询

  1. {
  2. "query": {
  3. "range": {
  4. "field": {
  5. "gt": 111,
  6. "gte": 111,
  7. "lt": "2015-01-01",
  8. "lte": "2022-01-01",
  9. "format": "2006-01-02T15:04:05Z07:00",
  10. "time_zone": "UTC",
  11. "boost": 1.0
  12. }
  13. }
  14. }
  15. }

范围查询支持的字段类型包括数字和日期,它查找指定字段中包含指定范围内的值的文档。你可以省略一个端点,但不能同时省略两个端点。inclusiveStart 和 inclusiveEnd 属性控制是否包含或排除端点。