2017-10-18 84 views
0

我有做一个的fuziness距离一个简单的文本字段搜索简单弹性查询:ElasticSearch - 模糊条款创建例外

GET /jobs/_search 
{ 
    "query": { 
    "fuzzy": { 
     "attributes.title": { 
     "value": "C#" 
     "fuzziness": 1 
     } 
    } 
    } 
} 

上面的查询也正是它被告知这样做,但我有一种情况我不想用一个词来解决(模糊)另一个特定的词。在这种情况下,我不希望C#也返回C++结果。同样我不想cat返回car结果。

但是我仍然需要模糊选项,如果有人确实拼写错了cat。在这种情况下,它可以返回catcar的结果。

回答

1

我认为这是可能与一些布尔查询组合,应该是水木清华这样的:

bool: 
    //should 
     //match query without fuzzy 
     //bool 
      //must 
       //must with fuzzy query 
       //must_not with match query 

(我会在后面如果没有足够作罢完整的例子)

+0

想看看这个作品。我了解你的方法。不需要完整的例子。 –

+0

该解决方案正常工作。虽然我会喜欢类似于同义词定义的方法。猜猜这是不可能的:)谢谢! –