Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 弹性搜索通配符查询不区分大小写(用于小写)_Java_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Kibana_Elastic Stack - Fatal编程技术网 elasticsearch,kibana,elastic-stack,Java,elasticsearch,Kibana,Elastic Stack" /> elasticsearch,kibana,elastic-stack,Java,elasticsearch,Kibana,Elastic Stack" />

Java 弹性搜索通配符查询不区分大小写(用于小写)

Java 弹性搜索通配符查询不区分大小写(用于小写),java,elasticsearch,kibana,elastic-stack,Java,elasticsearch,Kibana,Elastic Stack,我正在尝试使用通配符查询从elasticsearch获取记录 请查找下面的查询 get my_index12/_search { "query": { "wildcard": { "code.keyword": { "value": "*ARG*" } } } } 它正在工作,并为上面的查询提供预期结果。但它不适用于小写值 get my_index12/_search { "query": { "wildc

我正在尝试使用通配符查询从elasticsearch获取记录

请查找下面的查询

get my_index12/_search
{ 
  "query": { 
  "wildcard": { 
  "code.keyword": { 
          "value": "*ARG*" 
        } 
    } 
  } 
}
它正在工作,并为上面的查询提供预期结果。但它不适用于小写值

get my_index12/_search
{ 
  "query": { 
  "wildcard": { 
  "code.keyword": { 
          "value": "*Arg*" 
        } 
    } 
  } 
}

您必须规范化关键字字段:

类似于(来自文档):

更新 其他一些信息:

仅应用在角色级别运行的分析链的部分。例如,如果分析器同时执行小写和词干分析,则只应用小写:对缺少某些字母的单词执行词干分析是错误的

通过将analyze_wildcard设置为true,将分析以*结尾的查询,并通过确保前N-1个令牌上的精确匹配和最后一个令牌上的前缀匹配,使用不同的令牌构建布尔查询

请尝试以下操作:

映射:

PUT my_index12
{
"settings": {
"analysis": {
  "analyzer": {
    "custom_analyzer": {
      "type": "custom",
      "tokenizer": "whitespace",
      "char_filter": [
        "html_strip"
      ],
      "filter": [
        "lowercase",
        "asciifolding"
      ]
    }
   }
  }
},
"mappings": {
"doc": {
  "properties": {
    "code": {
      "type": "text",
       "analyzer": "custom_analyzer"
      }
    }
  }
 }
}
然后运行
querystring
Query

GET my_index12/_search
{
"query": {
"query_string": {
  "default_field": "code",
  "query": "AB\\-7000*"
    }
  }
}
它也适用于
ab-7000*


让我知道它是否适合您。

我已经创建了这个规范化程序
{“my_index12”:{“mappings”:{“doc”:{“properties”:{“code”:{“type”:“keyword”,“normalizer”:“my_normalizer”}}}
和查询
获取我的索引12/{“查询”:{“通配符”:{“代码.关键字”:{“值”:“*AB-7000-5000-Wk-21*“}}}}}}
并且我没有得到结果。它没有按照预期的
获取我的索引12/_搜索{“查询”:{“查询字符串”:{“默认字段”:“代码”,“查询”:“-7000*”}}工作
我在搜索查询中得到这个结果,
{AB-7000-4200-Wk-21,AB-7000-5000-Wk-21,sG66tsdF}
已经更新了我的答案。不知何故,
连字符
一开始的行为很奇怪。使用验证api验证这个
获取我的索引12/\u验证/查询?解释{“查询”:{“查询字符串”:{“字段”:[“代码”],“查询”“:”-7000*“}}}
。我收到这个错误,因为这个请求
请求[/my\u index12/\u validate/query]包含无法识别的参数:[explain{]->你的意思是[explain]?
我可以运行这个查询。我有
6.2.4
作为ES版本。但是无论如何,这个查询应该可以工作。它满足你所有的用例吗?非常感谢:)
GET my_index12/_search
{
"query": {
"query_string": {
  "default_field": "code",
  "query": "AB\\-7000*"
    }
  }
}