【发布时间】:2020-06-22 13:57:53
【问题描述】:
我正在尝试在 Elasticseach 7 中实现部分的、区分大小写的匹配。
我正在使用设置创建索引:
{
"merchant_3" : {
"settings" : {
"index" : {
"number_of_shards" : "2",
"provided_name" : "merchant_3",
"max_result_window" : "100000",
"creation_date" : "1592833582520",
"analysis" : {
"analyzer" : {
"englishAnalyzer" : {
"filter" : [
"lowercase"
],
"tokenizer" : "standard"
}
}
},
"number_of_replicas" : "1",
"uuid" : "5mjRMQ65TSGFFU0LfAH4eA",
"version" : {
"created" : "7060299"
}
}
}
}
}
和映射:
{
"merchant_3" : {
"mappings" : {
"properties" : {
"Name" : {
"type" : "keyword"
},
...
}
}
}
}
以下查询正确返回文档:
POST /merchant/_search
{
"query": {
"wildcard": {
"Name": "*Example*"
}
}
}
但是当我将搜索词小写时,它不会返回文档:
POST /merchant/_search
{
"query": {
"wildcard": {
"Name": "*example*"
}
}
}
如何配置 Elasticsearch 以使用小写搜索词匹配 Name 字段值?
【问题讨论】:
-
很想知道为什么您使用昂贵的前导通配符和未分析的关键字字段,并且您没有应用您创建的自定义分析器,无论如何添加一个解决所有这些问题的答案
-
您能添加一个您希望匹配的示例文档吗?
标签: elasticsearch