Link Search Menu Expand Document Documentation Menu

词语查询

使用 term 查询在字段中搜索精确术语。例如,以下查询搜索具有精确行号的行

GET shakespeare/_search
{
  "query": {
    "term": {
      "line_id": {
        "value": "61809"
      }
    }
  }
}

当文档被索引时,text 字段会被分析。分析包括对文本进行分词、转换为小写以及去除标点符号。与会分析查询文本的 match 查询不同,term 查询只匹配精确的术语,因此可能不会返回相关结果。避免在 text 字段上使用 term 查询。有关更多信息,请参阅术语级查询与全文查询比较

您可以在 case_insensitive 参数中指定查询应不区分大小写

GET shakespeare/_search
{
  "query": {
    "term": {
      "speaker": {
        "value": "HAMLET",
        "case_insensitive": true
      }
    }
  }
}

在 OpenSearch 2.x 及更早版本中,复杂性会随着字符数量呈指数级增长,导致堆内存使用量高并降低性能。为避免这种情况,请勿使用不区分大小写的搜索。相反,请在索引字段的分析器中应用小写分词过滤器,并使用小写查询术语。

响应包含匹配的文档,无论大小写差异如何

"hits": {
  "total": {
    "value": 1582,
    "relation": "eq"
  },
  "max_score": 2,
  "hits": [
    {
      "_index": "shakespeare",
      "_id": "32700",
      "_score": 2,
      "_source": {
        "type": "line",
        "line_id": 32701,
        "play_name": "Hamlet",
        "speech_number": 9,
        "line_number": "1.2.66",
        "speaker": "HAMLET",
        "text_entry": "[Aside]  A little more than kin, and less than kind."
      }
    },
  ...
}

参数

查询接受字段名称 (<field>) 作为顶级参数

GET _search
{
  "query": {
    "term": {
      "<field>": {
        "value": "sample",
        ...
      }
    }
  }
}

<field> 接受以下参数。除 value 外,所有参数都是可选的。

参数 数据类型 描述
字符串 要在 <field> 中指定的字段中搜索的术语。仅当文档的字段值与该术语精确匹配(包括正确的间距和大小写)时,该文档才会在结果中返回。
提升 浮点 一个浮点值,指定此字段对相关性得分的权重。高于 1.0 的值会增加字段的相关性。介于 0.0 和 1.0 之间的值会降低字段的相关性。默认值为 1.0。
_name 字符串 用于查询标记的查询名称。可选。
不区分大小写 (case_insensitive) 布尔型 如果为 true,则允许值与索引字段值进行不区分大小写的匹配。默认值为 false(大小写敏感性由字段的映射决定)。
剩余 350 字符

有问题?

想贡献?