- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种方法来实现具有同义词和模糊性的自动建议
例如,当用户试图搜索“replce ar”时我的同义词列表有 ar => 录音
所以,结果应该包括匹配的项目改变录音更换录音等等,
这里我们需要模糊性,因为“replace”(在用户的搜索文本中)有错别字同义词匹配 ar => audio record使用正则表达式模式自动建议。
是否可以在一个字段中实现所有三个功能?
编辑:正则表达式+模糊只会抛出错误。我没有很好地解释我对正则表达式模式的需求。所以,我需要一个正则表达式来进行部分单词查找('encyclopedic' 包含 'cyclo')。
现在,经过调查what options do i have为此,将我引导至 NGram Tokenizer并查看其他建议者,我发现也许 Phrase suggester确实是我正在寻找的东西,所以我会尝试并告诉你。
最佳答案
是的,您可以使用同义词和模糊性作为建议。通过在语言分析器中添加同义词过滤器并将该过滤器添加到分析器来处理同义词。然后,当您为要用于建议的字段创建字段映射时,将该分析器分配给该字段。
至于模糊性,那是在查询时发生的。大多数基于文本的查询都支持 fuzziness
选项,该选项允许您指定要允许的更正次数。默认的 auto
值会根据术语的长度调整更正次数,因此这通常是最好的。
概念分析设置 ( synonym_graph reference )
{
"analysis": {
"filter": {
"synonyms": {
"type": "synonym_graph",
"expand": "false",
"synonyms": [
"ar => audio record"
]
}
},
"analyzer": {
"synonyms": {
"tokenizer": "standard",
"type": "custom",
"filter": [
"standard",
"lowercase",
"synonyms"
]
}
}
}
}
概念场映射 ( Analyzer + Mapping reference )
(注意分析器与上面定义的分析器名称匹配)
{
"properties": {
"suggestion": {
"type": "text",
"analyzer": "synonyms"
}
}
}
概念查询
{
"query": {
"match": {
"suggestion": {
"query": "replce ar",
"fuzziness": "auto",
"operator": "and"
}
}
}
}
请记住,有几个不同的 options for suggestions ,因此根据您使用的选项,您可能需要调整字段的映射方式,甚至向分析器添加另一个标记过滤器。但分析器只是由一系列标记过滤器组成,因此您通常可以组合实现目标所需的任何标记过滤器。只需确保您了解每个过滤器的作用,以便以正确的顺序获取过滤器。
如果您在此过程中遇到困难,只需针对您遇到的具体问题提交另一个问题。祝你好运!
关于Elasticsearch建议+同义词+模糊性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54866687/
我正在寻找一种方法来实现具有同义词和模糊性的自动建议 例如,当用户试图搜索“replce ar”时我的同义词列表有 ar => 录音 所以,结果应该包括匹配的项目改变录音更换录音等等, 这里我们需要模
是否可以将模糊与词条查询一起使用而不匹配? 让我解释: 假设我们有4个文件 { "index": { "_id": 1 }} { "text": "I play football!"} { "inde
我在查询字符串中指定了一个 fuzzy_prefix_length,但是搜索“tes”并没有提取标题为“test”的帖子……知道我做错了什么吗? 这是我的查询字符串设置 "query" : { "
我是一名优秀的程序员,十分优秀!