我正在寻找一种用同义词和模糊性来实现自动提示的方法。
例如,当用户试图搜索“复制ar”时,我的同义词列表有ar =>音频记录。
因此,结果应该包括匹配更改的音频记录、替换音频记录等。
在这里,我们需要模糊性,因为有一个错误的“替换”(在用户的搜索文本)的同义词,以匹配ar =>音频记录自动提示与regex模式。
是否有可能在一个字段中实现所有这三个功能?
编辑:a regex+fuzzy只是抛出错误。我还没有很好地解释我对正则表达式的需求。因此,我需要一个Regex来进行部分单词查找(“百科全书”包含“cyclo”)。
现在,在为此目的研究我有什么选择、指导我到NGram托卡器并查看其他建议之后,我发现短语暗示可能是我正在寻找的东西,所以我会尝试并告诉您。
发布于 2019-02-26 17:41:13
是的,你既可以用同义词,也可以用模糊来表示建议。通过在语言分析器中添加同义词过滤器并将该过滤器添加到分析器中来处理同义词。然后,当为要用于建议的字段创建字段映射时,将分析器分配给该字段。
至于模糊性,这是在查询时发生的。大多数基于文本的查询都支持fuzziness选项,该选项允许您指定要允许多少次更正。默认的auto值根据期限的长短来调整校正的次数,所以这通常是最好的。
概念分析设置 (图参考)
{
"analysis": {
"filter": {
"synonyms": {
"type": "synonym_graph",
"expand": "false",
"synonyms": [
"ar => audio record"
]
}
},
"analyzer": {
"synonyms": {
"tokenizer": "standard",
"type": "custom",
"filter": [
"standard",
"lowercase",
"synonyms"
]
}
}
}
}概念场映射 (分析器+映射参考)
(注意,分析器与上面定义的分析器的名称相匹配)
{
"properties": {
"suggestion": {
"type": "text",
"analyzer": "synonyms"
}
}
}概念查询
{
"query": {
"match": {
"suggestion": {
"query": "replce ar",
"fuzziness": "auto",
"operator": "and"
}
}
}
}请记住,有几个不同的建议的备选方案,因此根据您使用的选项,您可能需要调整字段的映射方式,甚至需要向分析器中添加另一个令牌过滤器。但是分析器只是由一系列令牌过滤器组成,所以您通常可以组合任何您需要的令牌过滤器来实现您的目标。只需确保您了解每个过滤器所做的事情,这样您就可以得到正确的顺序。
如果您被困在这个过程的一部分,只需提交另一个问题与您遇到的具体问题。祝好运!
https://stackoverflow.com/questions/54866687
复制相似问题