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

时间:2018-10-16 23:02:27

标签: elasticsearch

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

1 个答案:

答案 0 :(得分:8)

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

 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"
    }
  }
}

将返回匹配的文档。

您可以检查它以了解更多详细信息keyword Vs. text