一尘不染

ElasticSearch中关键字和文本之间的区别

elasticsearch

有人可以举例说明在ElasticSearch中关键字和文本之间的区别吗?


阅读 238

收藏
2020-06-22

共1个答案

一尘不染

关键字 类型:如果您将一个字段定义为像这样的关键字类型。

 PUT products
{
  "mappings": {
    "_doc": {
      "properties": {
        "name": {
          "type": "keyword"
        }
      }
    }
  }
}

然后,当您对该字段进行搜索查询时,您必须插入整个值(关键字搜索),即关键字字段。

 POST products/_doc
{
  "name": "washing machine"
}

当您执行这样的搜索时:

 GET products/_search
{
  "query": {
    "match": {
      "name": "washing"
    }
  }
}

它将不匹配任何文档。您必须搜索整个词“洗衣机”。

*另一方面,将分析 *文本 类型,您可以使用字段值中的标记进行搜索。 全文搜索

    PUT products
{
  "mappings": {
    "_doc": {
      "properties": {
        "name": {
          "type": "text"
        }
      }
    }
  }
}

和搜索:

 GET products/_search
{
  "query": {
    "match": {
      "name": "washing"
    }
  }
}

将返回匹配的文档。

您可以检查此以了解更多详细信息关键字Vs。文本

2020-06-22