ElasticSearc搜索实例含高亮显示及搜索的特殊字符过滤

应用说明见代码注解。1.简单搜索实例展示:

public void search() throws IOException {// 自定义集群结点名称String clusterName = “elasticsearch_pudongping”;// 获取客户端Client client = ESClient.initClient(clusterName);// 创建查询索引,参数productindex表示要查询的索引库为productindexSearchRequestBuilder searchRequestBuilder = client.prepareSearch(“productindex”);// 设置查询索引类型,setTypes(“productType1”, “productType2″,”productType3”);// 用来设定在多个类型中搜索searchRequestBuilder.setTypes(“productIndex”);// 设置查询类型 1.SearchType.DFS_QUERY_THEN_FETCH = 精确查询 2.SearchType.SCAN =// 扫描查询,无序searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);// 设置查询关键词searchRequestBuilder.setQuery(QueryBuilders.fieldQuery(“title”, “Acer”));// 查询过滤器过滤价格在4000-5000内 这里范围为[4000,5000]区间闭包含,搜索结果包含价格为4000和价格为5000的数据searchRequestBuilder.setFilter(FilterBuilders.rangeFilter(“price”).from(4000).to(5000));// 分页应用searchRequestBuilder.setFrom(0).setSize(60);// 设置是否按查询匹配度排序searchRequestBuilder.setExplain(true);// 执行搜索,返回搜索响应信息SearchResponse response = searchRequestBuilder.execute().actionGet();SearchHits searchHits = response.getHits();SearchHit[] hits = searchHits.getHits();for (int i = 0; i < hits.length; i++) {SearchHit hit = hits[i];Map<String, Object> result = hit.getSource();// 打印map集合:{id=26, onSale=true, title=宏基Acer乐3, price=4009.0,// description=null, createDate=1380530123140, type=2}System.out.println(result);}System.out.println(“search success ..”);},挫折其实就是迈向成功所应缴的学费。

ElasticSearc搜索实例含高亮显示及搜索的特殊字符过滤

相关文章:

你感兴趣的文章:

标签云: