有人可以举例说明在ElasticSearch中关键字和文本之间的区别吗?
答案 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