gpt4 book ai didi

elasticsearch - Elasticsearch-将符号视为常规字符串并使文本不区分大小写

转载 作者:行者123 更新时间:2023-12-03 02:16:37 25 4
gpt4 key购买 nike

我有一个像这样的 flex 查询:

return {
url: API,
data: {
query: {
bool: {
must: [{
function_score: {
query: {
multi_match: {
query: "1234-ASDasdfasdf",
// analyzer: "whitespace",
type: "best_fields",
fuzziness: "1",
}
}
}
}
// filters are pushed into here
]
}
}
}
}
我们的业务数据涉及破折号,而我发现空白分析器最有效地避免破折号并将其视为常规字符串。
但是,空白分析器弄乱了不区分大小写的搜索。
我还没有找到一种允许不区分大小写并忽略符号的解决方案。使用默认的分析器,我认为所有符号都被视为标记器。因此,输入类似1-2-3-4的内容实际上会搜索[1,2,3,4]。
是否存在不区分大小写且对空格进行标记化的解决方案(或者至少不对符号进行标记化)?

最佳答案

您走在正确的轨道上。
如果空格 token 生成器适合您,但问题不区分大小写,则可以添加lowercase token filter Refer an example with whitespace tokenizer and lowercase filter - custom analyzer

curl -X PUT "localhost:9200/lowercase_example?pretty" -H 'Content-Type: application/json' -d'
{
"settings": {
"analysis": {
"analyzer": {
"whitespace_lowercase": {
"tokenizer": "whitespace",
"filter": [ "lowercase" ]
}
}
}
}
}
'
当您需要更改数据映射时,请不要忘记为数据重新编制索引。

关于elasticsearch - Elasticsearch-将符号视为常规字符串并使文本不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63421673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com