1.查询全部
/**
* 分页查询索引中数据
*
* @param indexName
* @param size
* @param form
* @return
*/
public static List<Telegraph> matchAllQuery(String indexName, int size, int from) {
QueryBuilder query = QueryBuilders.matchAllQuery();
SearchResponse response = getClient().prepareSearch(indexName).setQuery(query).setFrom(from).setSize(size)
.get();
SearchHits htis = response.getHits();
List<Telegraph> ts = new ArrayList<Telegraph>();
Telegraph t;
for (SearchHit searchHit : htis) {
System.out.println(searchHit.getSourceAsString());
t = new Telegraph();
t.setTitle((String) searchHit.getSourceAsMap().get("title"));
t.setContent((String) searchHit.getSourceAsMap().get("content"));
t.setAuthor((String) searchHit.getSourceAsMap().get("author"));
t.setPubdate((String) searchHit.getSourceAsMap().get("pubdate"));
ts.add(t);
}
return ts;
}
测试分页查询
public static void main(String[] args) {
List<Telegraph> list = matchAllQuery("telegraph", 5, 0);
for (Telegraph telegraph : list) {
System.out.println("title:"+telegraph.getTitle()+",content:"+telegraph.getContent()+",author:"+telegraph.getAuthor());
}
}
2.全文搜索
执行全文查询的标准查询:”title“字段中包含”董事“的文档
/**
* 根据查询条件查询
*/
public static void matchQuery() {
QueryBuilder query = QueryBuilders.matchQuery("title", "董事");
SearchResponse response = getClient().prepareSearch("telegraph").setQuery(query).setSize(5).get();
SearchHits searchHits = response.getHits();
for (SearchHit searchHit : searchHits) {
System.out.println(searchHit.getSourceAsString());
}
}
测试
public static void main(String[] args) {
matchQuery();
}
执行结果:
{"title":"周五召开董事会会议 审议及批准更新后的一季报","content":"以审议及批准更新后的2018年第一季度报告","author":"中兴通讯","pubdate":"2018-07-17T12:33:11"}
{
"title":"董事长、3名公司高管和2名中层人员被公安机关依法审查",
"content":"财联社7月24日讯,长生生物公告称,董事长及部分高管无法正常履职,长春市长春新区公安分局对长春长生生产冻干人用狂犬病疫苗涉嫌违法犯罪案件立案调查,将主要涉案人员公司董事长、3名公司高管和2名中层人员带至公安机关依法审查",
"author":"长生生物"
}
同时满足”董事“、”高管“条件
/**
* 根据查询条件查询
*/
public static void matchQuery() {
QueryBuilder query = QueryBuilders.matchQuery("title", "董事高管").operator(Operator.AND);
SearchResponse response = getClient().prepareSearch("telegraph").setQuery(query).setSize(5).get();
SearchHits searchHits = response.getHits();
for (SearchHit searchHit : searchHits) {
System.out.println(searchHit.getSourceAsString());
}
}
执行结果:
{
"title":"董事长、3名公司高管和2名中层人员被公安机关依法审查",
"content":"财联社7月24日讯,长生生物公告称,董事长及部分高管无法正常履职,长春市长春新区公安分局对长春长生生产冻干人用狂犬病疫苗涉嫌违法犯罪案件立案调查,将主要涉案人员公司董事长、3名公司高管和2名中层人员带至公安机关依法审查",
"author":"长生生物"
}
查询”title“或者”content“任一满足条件”销售“的文档
/**
* 根据查询条件查询
*/
public static void matchQuery() {
//QueryBuilder query = QueryBuilders.matchQuery("title", "董事高管").operator(Operator.AND);
QueryBuilder query = QueryBuilders.multiMatchQuery("销售", "title","content");//
SearchResponse response = getClient().prepareSearch("telegraph").setQuery(query).setSize(5).get();
SearchHits searchHits = response.getHits();
for (SearchHit searchHit : searchHits) {
System.out.println(searchHit.getSourceAsString());
}
}
查询结果;
{"title":"宝泰隆:半年报预增140%-156%","content":"公司主要产品焦炭、甲醇销售量及销售价格较上年同期有较大的上涨","author":"宝泰隆","pubdate":"2018-07-17T17:16:30"}
{
"title":"二甲苯销售报价大涨9.12%",
"content":"财联社7月24日讯,据百川资讯,今日PX(对二甲苯)报价8140元/吨,涨9.12%,丁二烯报价1.33万元/吨,涨3.1%;维生素E涨2.56%;氧化钼涨2.4%;电解锰涨2.13%",
"author":"财联社"
}