需求:在搜索中经常需要模糊搜索,比如我们搜“国”,希望能得到“中国”,“英国”等等。这时候就可以用FuzzyLikeThisQueryBuilder实现。
java 实例代码如下:
FuzzyLikeThisQueryBuilder fuzzy=new FuzzyLikeThisQueryBuilder("fname");//fname 为搜索的field
fuzzy.analyzer("ik").likeText(q).minSimilarity(0.5f).prefixLength(0);;//最低相似度为0.5,前缀为0
client.prepareSearch("test").setQuery(fuzzy).execute().actionGet();
http请求实例:
{
"fuzzy" : {
"fname" : {
"value" : "国",
"boost" : 1.0,
"min_similarity" : 0.5,
"prefix_length" : 0
"analyzer": "ik"
}
}
}