如何使通配符不区分大小写?
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wildcard-query.html
我正在为nodejs客户端寻找同样的选择,所以遇到了这个问题,所以发布作为答案可能会帮助其他人。
我必须把这个词转换成小写,它对我来说很有用。*${term.toLowerCase()}*
这是完整的函数
searchUsers(term, from, limit) {
let users = await EsClient.search({
index: 'users',
type: 'users',
body: {
from,
size: limit,
query: {
bool: {
should: [
{
wildcard: {
email: {
value: `*${term.toLowerCase()}*`
}
}
},
{
wildcard: {
"name.keyword": {
value: `*${term.toLowerCase()}*`
}
}
}
],
must_not: {
terms: {_id: blacklist}
}
}
}
}
});
}
自7.10版以来,通配符
查询支持特殊参数不区分大小写
(布尔值)。不区分大小写的搜索示例:
GET /_search
{
"query": {
"wildcard": {
"my_field": {
"value": "ki*y",
"case_insensitive": true
}
}
}
}
不分析通配符。这取决于你为搜索的领域提供了什么样的分析器。但是如果使用默认的分析器,那么通配符查询将返回不区分大小写的结果。
示例:在示例索引中发布两个名称,一个是“Sid”,另一个是“Sid”。
POST sample/sample
{
"name" : "sid"
}
POST sample/sample
{
"name" : "Sid"
}
然后执行通配符查询:
GET sample/_search
{
"query": {
"wildcard": {
"name": {
"value": "s*"
}
}
}
}
这将向我返回两份文件:
{
"took": 10,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 1,
"hits": [
{
"_index": "sample",
"_type": "sample",
"_id": "AWRPM87Wb6oopELrnEKE",
"_score": 1,
"_source": {
"name": "Sid"
}
},
{
"_index": "sample",
"_type": "sample",
"_id": "AWRPM9tpb6oopELrnEKF",
"_score": 1,
"_source": {
"name": "sid"
}
}
]
}
}
但如果对“S*”执行通配符查询,它将不会返回任何结果。因为默认令牌过滤器以小写形式存储术语,而术语“Sid”在反向索引中存储为“Sid”。
对于报告(0.1%的所有查询),我需要返回一个所有可能类别的列表,区分大小写! 考虑以下文件: 运行以下查询: 返回: 是否有方法返回区分大小写的类别(存储在文档中)?我对此查询结果中的感兴趣。 Elasticsearch论坛中的问题 谢谢,伊泰
我从这里学了一个例子 索引的映射为 索引的文档是 在对“full_text”字段使用简单的匹配查询时,我注意到如下所示 我看到文件是匹配的。另外,如果我使用大写字母,也就是“quick”作为搜索词,它显示文档是匹配的。 为什么会这样?。默认情况下,标记器会将“full_text”字段中的文本拆分为“quick”、“foxes”。那么,匹配查询如何与文档匹配大小写值呢?
需要制作一个密码程序,用户在开始时设置密码,在程序停止前可以输入密码3次。该程序不能区分大小写。 程序按预期打印,但不区分大小写
我试图在Elasticseach 7中实现部分的、区分大小写的匹配。 我正在使用设置创建索引: 以及映射: 以下查询将正确返回文档: 但当我将搜索词小写时,它不会返回文档: 如何配置Elasticsearch,使其与使用小写搜索词的名称字段值匹配?
问题内容: 我尝试在elasticsearch.yml文件中创建一个条目,以针对要点中提到的内容创建自定义分析器: https //gist.github.com/1403902 但我得到以下错误 我仍然不知道如何做到这一点。我已经在stackoverflow上搜索了相同的内容,并得到了类似的回复(如上述要点所述) 请给我一个例子,我可以测试。 问题答案: 由于配置文件在启动时是只读的,因此要使更
问题内容: 我正在尝试提出一个要求区分大小写的结果的请求。 例如在我的数据库中 该请求是 但我有3行作为结果,我只想要abcdef 我试图找到一个解决方案 但是我有这个错误: 未知归类:’Latin1_General_CS_AS’{“成功”:false,“错误”:“#1273-未知归类:’Latin1_General_CS_AS’”} 谢谢 问题答案: 感谢您的帮助,我找到了不是latin1 ut