Tar*_*sam 28
关键字类型:如果您将一个字段定义为类似关键字的类型。
PUT products
{
"mappings": {
"_doc": {
"properties": {
"name": {
"type": "keyword"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,当您在此字段上进行搜索查询时,您必须插入整个值(关键字搜索),即关键字字段。
POST products/_doc
{
"name": "washing machine"
}
Run Code Online (Sandbox Code Playgroud)
当您执行这样的搜索时:
GET products/_search
{
"query": {
"match": {
"name": "washing"
}
}
}
Run Code Online (Sandbox Code Playgroud)
它将不匹配任何文档。您必须搜索整个词“洗衣机”。
另一方面,将分析文本类型,并且您可以使用字段值中的标记进行搜索。全文搜索:
PUT products
{
"mappings": {
"_doc": {
"properties": {
"name": {
"type": "text"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
和搜索:
GET products/_search
{
"query": {
"match": {
"name": "washing"
}
}
}
Run Code Online (Sandbox Code Playgroud)
将返回匹配的文档。
您可以检查此以了解更多详细信息关键字Vs。文本
小智 18
文本数据类型和关键字数据类型之间的主要区别在于,文本字段在索引时进行分析,而关键字字段则不然。这意味着,文本字段在索引时被分解为单独的术语,以允许部分匹配,而关键字字段则按原样进行索引。
关键词映射
"channel" : {
"name" : "keyword"
},
"product_image" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
Run Code Online (Sandbox Code Playgroud)
除了弹性搜索中关键字类型的其他优点之外,还有一个优点是您可以在其中存储任何数据类型。无论是字符串、数字、日期等。
PUT /demo-index/
{
"mappings": {
"properties": {
"name": { "type": "keyword" }
}
}
}
POST /demo-index/_doc
{
"name": "2021-02-21"
}
POST /demo-index/_doc
{
"name": 100
}
POST /demo-index/_doc
{
"name": "Jhon"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5381 次 |
| 最近记录: |