You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ElasticSearch相似短语检索优化:基于span_near与fuzzy query

短语相似性检索优化求助

我目前用span_near结合模糊查询实现短语文本检索,这套方案在输入精确短语(哪怕词序错误)时表现良好,但现在需要实现非精确但高度相似的短语检索,具体要求如下:

示例文本

I wake up early because his dog barks loudly

需命中文档的检索场景

  • I wake up early(精确短语)
  • I wake up because dog barks(短语中间缺失少量词汇)
  • I always wake up early because dog barks(短语中间新增少量词汇)

不应命中文档的检索场景

  • I wake up and bark(短语缺失词汇过多)
  • I wake up often at the 2 am and when the Moon is alright wolves bark under my window.(短语新增词汇过多)

以下是我当前使用的代码(词汇以空格分隔,每个词汇加入span_multi对象):

{    
    "query": {        
        "bool": {            
            "must": [                
                {                    
                    "span_near": {                        
                        "clauses": [                            
                            {                                
                                "span_multi": {                                    
                                    "match": {                                        
                                        "fuzzy": {                                            
                                            "text": {                                                
                                                "value": "I",                                                
                                                "fuzziness": 2                                            
                                            }                                        
                                        }                                    
                                    }                                
                                }                            
                            },                            
                            {                                
                                "span_multi": {                                    
                                    "match": {                                        
                                        "fuzzy": {                                            
                                            "text": {                                                
                                                "value": "wake",                                                
                                                "fuzziness": 2                                            
                                            }                                        
                                        }                                    
                                    }                                
                                }                            
                            },                            
                            {                                
                                "span_multi": {                                    
                                    "match": {                                        
                                        "fuzzy": {                                            
                                            "text": {                                                
                                                "value": "up",                                                
                                                "fuzziness": 2                                            
                                            }                                        
                                        }                                    
                                    }                                
                                }                            
                            }                        
                        ],                        
                        "slop": 5,                        
                        "in_order": false                    
                    }                
                }            
            ]        
        }    
    },    
    "size": 20,    
    "from": 0,    
    "sort": [        
        {            
            "petition_number": {                
                "unmapped_type": "keyword",                
                "order": "asc"            
            }        
        }    
    ]
}

内容的提问来源于stack exchange,提问作者Ярига Олег

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 10:42:08