Elasticsearch 入门教程 – 误拼写时的fuzzy模糊搜索技术

继续上篇的数据准备:

GET /news_website/news/_search 
{
  "query": {
    "fuzzy": {
      "title": {
        "value": "大法懂游",
        "fuzziness": 2
      }
    }
  }
}

 

fuzzy搜索以后,会自动尝试将你的搜索文本进行纠错,然后去跟文本进行匹配

fuzziness,你的搜索文本最多可以纠正几个字母去跟你的数据进行匹配,默认如果不设置,就是2

Java 客户端代码:

 srq =  client.prepareSearch("news_website").setTypes("news");  
        srq.setSearchType(SearchType.DFS_QUERY_AND_FETCH);  
        srq.setQuery(QueryBuilders.fuzzyQuery("title", "大法懂游").fuzziness(Fuzziness.build("2"))
        		);
        response=srq.execute().actionGet();
        
        for (SearchHit searchHit : response.getHits()) {
			System.out.println(searchHit.getScore());
			Map source = searchHit.getSource();
			System.out.println(source.toString());
		}