1 查询所有(matchAllQuery)

1)源代码

@Test
publicvoid matchAllQuery() {

// 1 执行查询
SearchResponse searchResponse = client.prepareSearch("blog").setTypes("article")
.setQuery(QueryBuilders.matchAllQuery()).get();

// 2 打印查询结果
SearchHits hits = searchResponse.getHits(); // 获取命中次数,查询结果有多少对象
System.out.println("查询结果有:" + hits.getTotalHits() + "条");

Iterator<SearchHit> iterator = hits.iterator();

while (iterator.hasNext()) {
SearchHit searchHit = iterator.next(); // 每个查询对象

System.out.println(searchHit.getSourceAsString()); // 获取字符串格式打印
}

// 3 关闭连接
client.close();
}

 

 

2 对所有字段分词查询(queryStringQuery)

1)源代码

@Test
publicvoid query() {
// 1 条件查询
SearchResponse searchResponse = client.prepareSearch("blog").setTypes("article")
.setQuery(QueryBuilders.queryStringQuery("全文")).get();

// 2 打印查询结果
SearchHits hits = searchResponse.getHits(); // 获取命中次数,查询结果有多少对象
System.out.println("查询结果有:" + hits.getTotalHits() + "条");

Iterator<SearchHit> iterator = hits.iterator();

while (iterator.hasNext()) {
SearchHit searchHit = iterator.next(); // 每个查询对象

System.out.println(searchHit.getSourceAsString()); // 获取字符串格式打印
}

// 3 关闭连接
client.close();
}

 

 

3 通配符查询(wildcardQuery)

*:表示多个字符(任意的字符)

?:表示单个字符

1)源代码

@Test
publicvoid wildcardQuery() {

// 1 通配符查询
SearchResponse searchResponse = client.prepareSearch("blog").setTypes("article")
.setQuery(QueryBuilders.wildcardQuery("content", "*全*")).get();

// 2 打印查询结果
SearchHits hits = searchResponse.getHits(); // 获取命中次数,查询结果有多少对象
System.out.println("查询结果有:" + hits.getTotalHits() + "条");

Iterator<SearchHit> iterator = hits.iterator();

while (iterator.hasNext()) {
SearchHit searchHit = iterator.next(); // 每个查询对象

System.out.println(searchHit.getSourceAsString()); // 获取字符串格式打印
}

// 3 关闭连接
client.close();
}

 

4 词条查询(TermQuery)

1)源代码

@Test
publicvoid termQuery() {

// 1 第一field查询
SearchResponse searchResponse = client.prepareSearch("blog").setTypes("article")
.setQuery(QueryBuilders.termQuery("content", "全")).get();

// 2 打印查询结果
SearchHits hits = searchResponse.getHits(); // 获取命中次数,查询结果有多少对象
System.out.println("查询结果有:" + hits.getTotalHits() + "条");

Iterator<SearchHit> iterator = hits.iterator();

while (iterator.hasNext()) {
SearchHit searchHit = iterator.next(); // 每个查询对象

System.out.println(searchHit.getSourceAsString()); // 获取字符串格式打印
}

// 3 关闭连接
client.close();
}

 

5 模糊查询(fuzzy)

 

@Test
publicvoid fuzzy() {

// 1 模糊查询
SearchResponse searchResponse = client.prepareSearch("blog").setTypes("article")
.setQuery(QueryBuilders.fuzzyQuery("title", "lucene")).get();

// 2 打印查询结果
SearchHits hits = searchResponse.getHits(); // 获取命中次数,查询结果有多少对象
System.out.println("查询结果有:" + hits.getTotalHits() + "条");

Iterator<SearchHit> iterator = hits.iterator();

while (iterator.hasNext()) {
SearchHit searchHit = iterator.next(); // 每个查询对象

System.out.println(searchHit.getSourceAsString()); // 获取字符串格式打印
}

// 3 关闭连接
client.close();
}

6 映射相关操作

1)源代码

@Test
public void createMapping() throws Exception {

// 1设置mapping
XContentBuilder builder = XContentFactory.jsonBuilder()
.startObject()
.startObject("article")
.startObject("properties")
.startObject("id1")
.field("type", "string")
.field("store", "yes")
.endObject()
.startObject("title2")
.field("type", "string")
.field("store", "no")
.endObject()
.startObject("content")
.field("type", "string")
.field("store", "yes")
.endObject()
.endObject()
.endObject()
.endObject();

// 2 添加mapping
PutMappingRequest mapping = Requests.putMappingRequest("blog4").type("article").source(builder);

client.admin().indices().putMapping(mapping).get();

// 3 关闭资源
client.close();
}