solr query
2015-09-01 16:52
423 查看
封装了查询的关键字,查询过滤条件, 查询排序, or查询
在网上的搜的语法
SolrQuery solrQuery = new SolrQuery(); //solrQuery.setQuery("status:1"); solrQuery.set("q", "storeName:" + "麦兜"); solrQuery.addFilterQuery("status:" + BaseConstant.STATUS_ENABLE); solrQuery.setQuery("name:连衣裙 OR storeName:8"); solrQuery.setSort("onlineTime", ORDER.desc); //高亮 solrQuery.setHighlight(true); solrQuery.addHighlightField("storeName"); solrQuery.setHighlightSimplePre("<span style='color:red'>"); solrQuery.setHighlightSimplePost("</span>"); Page<Goods> page = SolrUtil.getPage(new Page<Goods>(), solrQuery, Goods.class);
在网上的搜的语法
//AND 并且 SolrQuery params = new SolrQuery("name:apple AND manu:inc"); //OR 或者 params.setQuery("name:apple OR manu:apache"); //空格 等同于 OR params.setQuery("name:server manu:dell"); //params.setQuery("name:solr - manu:inc"); //params.setQuery("name:server + manu:dell"); //查询name包含solr apple params.setQuery("name:solr,apple"); //manu不包含inc params.setQuery("name:solr,apple NOT manu:inc"); //50 <= price <= 200 params.setQuery("price:[50 TO 200]"); params.setQuery("popularity:[5 TO 6]"); //params.setQuery("price:[50 TO 200] - popularity:[5 TO 6]"); //params.setQuery("price:[50 TO 200] + popularity:[5 TO 6]"); //50 <= price <= 200 AND 5 <= popularity <= 6 params.setQuery("price:[50 TO 200] AND popularity:[5 TO 6]"); params.setQuery("price:[50 TO 200] OR popularity:[5 TO 6]"); //过滤器查询,可以提高性能 filter 类似多个条件组合,如and //params.addFilterQuery("id:VA902B"); //params.addFilterQuery("price:[50 TO 200]"); //params.addFilterQuery("popularity:[* TO 5]"); //params.addFilterQuery("weight:*"); //0 < popularity < 6 没有等于 //params.addFilterQuery("popularity:{0 TO 6}"); //排序 params.addSortField("id", ORDER.asc); //分页:start开始页,rows每页显示记录条数 //params.add("start", "0"); //params.add("rows", "200"); //params.setStart(0); //params.setRows(200); //设置高亮 params.setHighlight(true); // 开启高亮组件 params.addHighlightField("name");// 高亮字段 params.setHighlightSimplePre("<font color='red'>");//标记,高亮关键字前缀 params.setHighlightSimplePost("</font>");//后缀 params.setHighlightSnippets(1);//结果分片数,默认为1 params.setHighlightFragsize(1000);//每个分片的最大长度,默认为100 //分片信息 params.setFacet(true) .setFacetMinCount(1) .setFacetLimit(5)//段 .addFacetField("name")//分片字段 .addFacetField("inStock"); //params.setQueryType(""); try { QueryResponse response = server.query(params); /*List<Index> indexs = response.getBeans(Index.class); for (int i = 0; i < indexs.size(); i++) { fail(indexs.get(i)); }*/ //输出查询结果集 SolrDocumentList list = response.getResults(); fail("query result nums: " + list.getNumFound()); for (int i = 0; i < list.size(); i++) { fail(list.get(i)); } //输出分片信息 List<FacetField> facets = response.getFacetFields(); for (FacetField facet : facets) { fail(facet); List<Count> facetCounts = facet.getValues(); for (FacetField.Count count : facetCounts) { System.out.println(count.getName() + ": " + count.getCount()); } } } catch (SolrServerException e) { e.printStackTrace(); }
相关文章推荐
- **ERROR: Ninja build tool not found.
- UIResponder - 1
- 短语out of the blue
- 关于squirrel的那些事
- deque双向队列
- uva1584 - Circular Sequence
- values v11 v14
- iOS开发-综合UI案例-彩票
- android retrofit @Query用法
- 8.10.3 The MySQL Query Cache
- 被曝红米Note 2屏幕和摄像头偷梁换柱后,小米换图,删帖,发声明
- div设置contentEditable="true"作为文本编辑器,定位光标解决办法
- LeetCode Distinct Subsequences DP
- UILabel圆角、边框、宽度自适应
- QuickServer自学笔记(一)
- *** Assertion failure in -[CompensaCommentView _dequeueReusableViewOfType:withIdentifier:],
- 详解 CALayer 和 UIView 的区别和联系
- 使用pytest+requests进行接口测试实践——测试post请求
- MySQL高速缓存启动方法及参数详解query_cache_size=32M query_cache_type=1
- MySQL高速缓存启动方法及参数详解query_cache_size=32M query_cache_type=1