Skr*_*dox 17 elasticsearch elasticsearch-5
Elasticsearch 是否允许我们查询不区分大小写的文档?或者我应该在查询之前将它们保存为不区分大小写?或者是否应该为整个索引设置一些设置以使其不区分大小写?
你能澄清一下这一刻吗?
Pol*_*ton 17
默认情况下,由于应用了映射弹性,这些字段不区分大小写。
试试下面:
PUT myindex/doc/1
{
"name":"TEST"
}
GET myindex/_mapping
Run Code Online (Sandbox Code Playgroud)
它应该返回:
{
"myindex": {
"mappings": {
"doc": {
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果您使用下面的查询,它将返回一个匹配项(注意映射[文本和关键字]):
POST myindex/_search
{
"query": {
"match": {
"name2": "test"
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果您明确指定将字段索引为keyword,那么它将区分大小写搜索。下面试试看;它不会返回任何结果。
PUT myindex/_mapping/doc
{
"properties": {
"name2": {
"type": "keyword"
}
}
}
PUT myindex/doc/1
{
"name2":"TEST"
}
POST myindex/_search
{
"query": {
"match": {
"name2": "test"
}
}
}
Run Code Online (Sandbox Code Playgroud)
TLDR;使用默认映射或text类型 - 如果您将字段指定为仅索引keyword类型,则区分大小写。
| 归档时间: |
|
| 查看次数: |
22902 次 |
| 最近记录: |