1、資料準備
首先建立book索引
PUT /book/
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"properties": {
"name": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
},
"description": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
},
"studymodel": {
"type": "keyword"
},
"price": {
"type": "double"
},
"timestamp": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
},
"pic": {
"type": "text",
"index": false
}
}
}
}
添加測試資料
PUT /book/_doc/1
{
"name": "Bootstrap開發",
"description": "Bootstrap是一個非常流行的開發架構。此開發架構可以幫助不擅長css頁面開發的程式人員輕松的實作一個css,不受浏覽器限制的精美界面css效果。",
"studymodel": "201002",
"price": 38.6,
"timestamp": "2019-08-25 19:11:35",
"pic": "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags": [
"bootstrap",
"dev"
]
}
PUT /book/_doc/2
{
"name": "java程式設計思想",
"description": "java語言是世界第一程式設計語言,在軟體開發領域使用人數最多。",
"studymodel": "201001",
"price": 68.6,
"timestamp": "2019-08-25 19:11:35",
"pic": "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags": [
"java",
"dev"
]
}
PUT /book/_doc/3
{
"name": "spring開發基礎",
"description": "spring 在java領域非常流行,java程式員都在用。",
"studymodel": "201001",
"price": 88.6,
"timestamp": "2019-08-24 19:11:35",
"pic": "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags": [
"spring",
"java"
]
}
2、match_all搜尋
match_all用來搜尋全部記錄,先回顧下文法
GET /book/_search
{
"query": {
"match_all": {}
}
}
傳回
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 3,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "book",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"name" : "Bootstrap開發",
"description" : "Bootstrap是一個非常流行的開發架構。此開發架構可以幫助不擅長css頁面開發的程式人員輕松的實作一個css,不受浏覽器限制的精美界面css效果。",
"studymodel" : "201002",
"price" : 38.6,
"timestamp" : "2019-08-25 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"bootstrap",
"dev"
]
}
},
{
"_index" : "book",
"_type" : "_doc",
"_id" : "2",
"_score" : 1.0,
"_source" : {
"name" : "java程式設計思想",
"description" : "java語言是世界第一程式設計語言,在軟體開發領域使用人數最多。",
"studymodel" : "201001",
"price" : 68.6,
"timestamp" : "2019-08-25 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"java",
"dev"
]
}
},
{
"_index" : "book",
"_type" : "_doc",
"_id" : "3",
"_score" : 1.0,
"_source" : {
"name" : "spring開發基礎",
"description" : "spring 在java領域非常流行,java程式員都在用。",
"studymodel" : "201001",
"price" : 88.6,
"timestamp" : "2019-08-24 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"spring",
"java"
]
}
}
]
}
}
Java代碼
@Test
public void testSearchAll() throws IOException {
//1建構搜尋請求
SearchRequest searchRequest = new SearchRequest("book");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());
//擷取某些字段
// searchSourceBuilder.fetchSource(new String[]{"name"}, new String[]{});
searchRequest.source(searchSourceBuilder);
//2執行搜尋
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
//3擷取結果
SearchHits hits = searchResponse.getHits();
//資料資料
SearchHit[] searchHits = hits.getHits();
System.out.println("--------------------------");
for (SearchHit hit : searchHits) {
String id = hit.getId();
float score = hit.getScore();
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
String name = (String) sourceAsMap.get("name");
String description = (String) sourceAsMap.get("description");
Double price = (Double) sourceAsMap.get("price");
System.out.println("name:" + name);
System.out.println("description:" + description);
System.out.println("price:" + price);
System.out.println("==========================");
}
}
傳回結果
3、IDs搜尋
IDs用來搜尋指定id的記錄,先回顧下文法
GET /book/_search
{
"query": {
"ids": {
"values": [1,4,100]
}
}
}
隻有id為1才存在資料,id為4,id為100均無資料
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "book",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"name" : "Bootstrap開發",
"description" : "Bootstrap是一個非常流行的開發架構。此開發架構可以幫助不擅長css頁面開發的程式人員輕松的實作一個css,不受浏覽器限制的精美界面css效果。",
"studymodel" : "201002",
"price" : 38.6,
"timestamp" : "2019-08-25 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"bootstrap",
"dev"
]
}
}
]
}
}
Java代碼
//ids搜尋
@Test
public void testSearchIds() throws IOException {
//1建構搜尋請求
SearchRequest searchRequest = new SearchRequest("book");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.idsQuery().addIds("1","4","100"));
searchRequest.source(searchSourceBuilder);
//2執行搜尋
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
//3擷取結果
SearchHits hits = searchResponse.getHits();
//資料資料
SearchHit[] searchHits = hits.getHits();
System.out.println("--------------------------");
for (SearchHit hit : searchHits) {
String id = hit.getId();
float score = hit.getScore();
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
String name = (String) sourceAsMap.get("name");
String description = (String) sourceAsMap.get("description");
Double price = (Double) sourceAsMap.get("price");
System.out.println("id:" + id);
System.out.println("name:" + name);
System.out.println("description:" + description);
System.out.println("price:" + price);
System.out.println("==========================");
}
}
傳回結果
4、match搜尋
match就是普通的分詞搜尋,先回顧下文法
GET /book/_search
{
"query": {
"match": {
"description": "java程式員"
}
}
}
傳回結果
{
"took" : 88,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : 1.9788694,
"hits" : [
{
"_index" : "book",
"_type" : "_doc",
"_id" : "3",
"_score" : 1.9788694,
"_source" : {
"name" : "spring開發基礎",
"description" : "spring 在java領域非常流行,java程式員都在用。",
"studymodel" : "201001",
"price" : 88.6,
"timestamp" : "2019-08-24 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"spring",
"java"
]
}
},
{
"_index" : "book",
"_type" : "_doc",
"_id" : "2",
"_score" : 0.51124346,
"_source" : {
"name" : "java程式設計思想",
"description" : "java語言是世界第一程式設計語言,在軟體開發領域使用人數最多。",
"studymodel" : "201001",
"price" : 68.6,
"timestamp" : "2019-08-25 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"java",
"dev"
]
}
}
]
}
}
Java代碼
//match搜尋 普通搜尋
@Test
public void testSearchMatch() throws IOException {
//1建構搜尋請求
SearchRequest searchRequest = new SearchRequest("book");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchQuery("description", "java程式員"));
searchRequest.source(searchSourceBuilder);
//2執行搜尋
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
//3擷取結果
SearchHits hits = searchResponse.getHits();
//資料資料
SearchHit[] searchHits = hits.getHits();
System.out.println("--------------------------");
for (SearchHit hit : searchHits) {
String id = hit.getId();
float score = hit.getScore();
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
String name = (String) sourceAsMap.get("name");
String description = (String) sourceAsMap.get("description");
Double price = (Double) sourceAsMap.get("price");
System.out.println("id:" + id);
System.out.println("name:" + name);
System.out.println("description:" + description);
System.out.println("price:" + price);
System.out.println("==========================");
}
}
傳回結果
5、term搜尋
不會對搜尋關鍵詞進行分詞,代表精确比對
GET /book/_search
{
"query": {
"term": {
"description": "java程式員"
}
}
}
無結果傳回,原因description已被分詞,無
java程式員
這個單獨詞彙
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 0,
"relation" : "eq"
},
"max_score" : null,
"hits" : [ ]
}
}
Java代碼
//term 搜尋
@Test
public void testSearchTerm() throws IOException {
//1建構搜尋請求
SearchRequest searchRequest = new SearchRequest("book");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.termQuery("description", "java程式員"));
searchRequest.source(searchSourceBuilder);
//2執行搜尋
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
//3擷取結果
SearchHits hits = searchResponse.getHits();
//資料資料
SearchHit[] searchHits = hits.getHits();
System.out.println("--------------------------");
for (SearchHit hit : searchHits) {
String id = hit.getId();
float score = hit.getScore();
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
String name = (String) sourceAsMap.get("name");
String description = (String) sourceAsMap.get("description");
Double price = (Double) sourceAsMap.get("price");
System.out.println("id:" + id);
System.out.println("name:" + name);
System.out.println("description:" + description);
System.out.println("price:" + price);
System.out.println("==========================");
}
}
同樣無傳回結果。
6、multi_match多字段搜尋
同時比對多個字段進行搜尋,先回顧下文法
GET /book/_search
{
"query": {
"multi_match": {
"query": "java程式員",
"fields": [
"name",
"description"
]
}
}
}
将
name
,
description
中包含關鍵詞的結果傳回
{
"took" : 54,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : 1.9788694,
"hits" : [
{
"_index" : "book",
"_type" : "_doc",
"_id" : "3",
"_score" : 1.9788694,
"_source" : {
"name" : "spring開發基礎",
"description" : "spring 在java領域非常流行,java程式員都在用。",
"studymodel" : "201001",
"price" : 88.6,
"timestamp" : "2019-08-24 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"spring",
"java"
]
}
},
{
"_index" : "book",
"_type" : "_doc",
"_id" : "2",
"_score" : 0.9331132,
"_source" : {
"name" : "java程式設計思想",
"description" : "java語言是世界第一程式設計語言,在軟體開發領域使用人數最多。",
"studymodel" : "201001",
"price" : 68.6,
"timestamp" : "2019-08-25 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"java",
"dev"
]
}
}
]
}
}
Java代碼
//multi_match搜尋 多字段搜尋
@Test
public void testSearchMultiMatch() throws IOException {
//1建構搜尋請求
SearchRequest searchRequest = new SearchRequest("book");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.multiMatchQuery("java程式員","name","description"));
searchRequest.source(searchSourceBuilder);
//2執行搜尋
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
//3擷取結果
SearchHits hits = searchResponse.getHits();
//資料資料
SearchHit[] searchHits = hits.getHits();
System.out.println("--------------------------");
for (SearchHit hit : searchHits) {
String id = hit.getId();
float score = hit.getScore();
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
String name = (String) sourceAsMap.get("name");
String description = (String) sourceAsMap.get("description");
Double price = (Double) sourceAsMap.get("price");
System.out.println("id:" + id);
System.out.println("name:" + name);
System.out.println("description:" + description);
System.out.println("price:" + price);
System.out.println("==========================");
}
}
傳回結果
7、bool搜尋
bool搜尋類似于資料庫中的and or關鍵詞,先回顧下文法,搜尋
name
、
description
必須包含java程式員,或者
studymodel
包含201001的資料
GET /book/_search
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "java程式員",
"fields": [
"name",
"description"
]
}
}
],
"should": [
{
"match": {
"studymodel": "201001"
}
}
]
}
}
}
傳回結果
{
"took" : 50,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : 2.448873,
"hits" : [
{
"_index" : "book",
"_type" : "_doc",
"_id" : "3",
"_score" : 2.448873,
"_source" : {
"name" : "spring開發基礎",
"description" : "spring 在java領域非常流行,java程式員都在用。",
"studymodel" : "201001",
"price" : 88.6,
"timestamp" : "2019-08-24 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"spring",
"java"
]
}
},
{
"_index" : "book",
"_type" : "_doc",
"_id" : "2",
"_score" : 1.4031168,
"_source" : {
"name" : "java程式設計思想",
"description" : "java語言是世界第一程式設計語言,在軟體開發領域使用人數最多。",
"studymodel" : "201001",
"price" : 68.6,
"timestamp" : "2019-08-25 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"java",
"dev"
]
}
}
]
}
}
Java代碼
//bool搜尋
@Test
public void testSearchBool() throws IOException {
//1建構搜尋請求
SearchRequest searchRequest = new SearchRequest("book");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
//建構multiMatch請求
MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery("java程式員", "name", "description");
//建構match請求
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("studymodel", "201001");
BoolQueryBuilder boolQueryBuilder=QueryBuilders.boolQuery();
boolQueryBuilder.must(multiMatchQueryBuilder);
boolQueryBuilder.should(matchQueryBuilder);
searchSourceBuilder.query(boolQueryBuilder);
searchRequest.source(searchSourceBuilder);
//2執行搜尋
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
//3擷取結果
SearchHits hits = searchResponse.getHits();
//資料資料
SearchHit[] searchHits = hits.getHits();
System.out.println("--------------------------");
for (SearchHit hit : searchHits) {
String id = hit.getId();
float score = hit.getScore();
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
String name = (String) sourceAsMap.get("name");
String description = (String) sourceAsMap.get("description");
Double price = (Double) sourceAsMap.get("price");
System.out.println("id:" + id);
System.out.println("name:" + name);
System.out.println("description:" + description);
System.out.println("price:" + price);
System.out.println("==========================");
}
}
傳回結果
8、filter過濾
對搜尋進行過濾,注意與
query
進行差別,先回顧下文法,搜尋
name
、
description
必須包含java程式員,或者
studymodel
包含201001,
price
在50至70範圍内
GET /book/_search
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "java程式員",
"fields": [
"name",
"description"
]
}
}
],
"should": [
{
"match": {
"studymodel": "201001"
}
}
],
"filter": {
"range": {
"price": {
"gte": 50,
"lte": 70
}
}
}
}
}
}
傳回結果
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 1.4031168,
"hits" : [
{
"_index" : "book",
"_type" : "_doc",
"_id" : "2",
"_score" : 1.4031168,
"_source" : {
"name" : "java程式設計思想",
"description" : "java語言是世界第一程式設計語言,在軟體開發領域使用人數最多。",
"studymodel" : "201001",
"price" : 68.6,
"timestamp" : "2019-08-25 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"java",
"dev"
]
}
}
]
}
}
Java代碼
//filter搜尋
@Test
public void testSearchFilter() throws IOException {
//1建構搜尋請求
SearchRequest searchRequest = new SearchRequest("book");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
//建構multiMatch請求
MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery("java程式員", "name", "description");
//建構match請求
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("studymodel", "201001");
BoolQueryBuilder boolQueryBuilder=QueryBuilders.boolQuery();
boolQueryBuilder.must(multiMatchQueryBuilder);
boolQueryBuilder.should(matchQueryBuilder);
boolQueryBuilder.filter(QueryBuilders.rangeQuery("price").gte(50).lte(70));
searchSourceBuilder.query(boolQueryBuilder);
searchRequest.source(searchSourceBuilder);
//2執行搜尋
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
//3擷取結果
SearchHits hits = searchResponse.getHits();
//資料資料
SearchHit[] searchHits = hits.getHits();
System.out.println("--------------------------");
for (SearchHit hit : searchHits) {
String id = hit.getId();
float score = hit.getScore();
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
String name = (String) sourceAsMap.get("name");
String description = (String) sourceAsMap.get("description");
Double price = (Double) sourceAsMap.get("price");
System.out.println("id:" + id);
System.out.println("name:" + name);
System.out.println("description:" + description);
System.out.println("price:" + price);
System.out.println("==========================");
}
}
傳回結果
9、sort排序
對搜尋進行排序,注意與
query
進行差別,先回顧下文法,搜尋
name
、
description
必須包含java程式員,或者
studymodel
包含201001,
price
在50至90範圍内,按照
price
升序
GET /book/_search
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "java程式員",
"fields": [
"name",
"description"
]
}
}
],
"should": [
{
"match": {
"studymodel": "201001"
}
}
],
"filter": {
"range": {
"price": {
"gte": 50,
"lte": 90
}
}
}
}
},
"sort": [
{
"price": {
"order": "asc"
}
}
]
}
傳回結果
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : null,
"hits" : [
{
"_index" : "book",
"_type" : "_doc",
"_id" : "2",
"_score" : null,
"_source" : {
"name" : "java程式設計思想",
"description" : "java語言是世界第一程式設計語言,在軟體開發領域使用人數最多。",
"studymodel" : "201001",
"price" : 68.6,
"timestamp" : "2019-08-25 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"java",
"dev"
]
},
"sort" : [
68.6
]
},
{
"_index" : "book",
"_type" : "_doc",
"_id" : "3",
"_score" : null,
"_source" : {
"name" : "spring開發基礎",
"description" : "spring 在java領域非常流行,java程式員都在用。",
"studymodel" : "201001",
"price" : 88.6,
"timestamp" : "2019-08-24 19:11:35",
"pic" : "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg",
"tags" : [
"spring",
"java"
]
},
"sort" : [
88.6
]
}
]
}
}
Java代碼
//sort搜尋
@Test
public void testSearchSort() throws IOException {
//1建構搜尋請求
SearchRequest searchRequest = new SearchRequest("book");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
//建構multiMatch請求
MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery("java程式員", "name", "description");
//建構match請求
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("studymodel", "201001");
BoolQueryBuilder boolQueryBuilder=QueryBuilders.boolQuery();
boolQueryBuilder.must(multiMatchQueryBuilder);
boolQueryBuilder.should(matchQueryBuilder);
boolQueryBuilder.filter(QueryBuilders.rangeQuery("price").gte(50).lte(90));
searchSourceBuilder.query(boolQueryBuilder);
//按照價格升序
searchSourceBuilder.sort("price", SortOrder.ASC);
searchRequest.source(searchSourceBuilder);
//2執行搜尋
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
//3擷取結果
SearchHits hits = searchResponse.getHits();
//資料資料
SearchHit[] searchHits = hits.getHits();
System.out.println("--------------------------");
for (SearchHit hit : searchHits) {
String id = hit.getId();
float score = hit.getScore();
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
String name = (String) sourceAsMap.get("name");
String description = (String) sourceAsMap.get("description");
Double price = (Double) sourceAsMap.get("price");
System.out.println("id:" + id);
System.out.println("name:" + name);
System.out.println("description:" + description);
System.out.println("price:" + price);
System.out.println("==========================");
}
}
傳回結果
10、總結
- 在實際的應用過程要注意靈活變通,搜尋方式方法不要一成不變,要思考為什麼這種方式能夠搜尋出來結果,還要思考搜尋結果的正确與否
- 在上面的學習過程中,應該也能發現規律,Java代碼中建構搜尋請求與rest 風格的文法及其類似,包括其搜尋方式、代碼層級。是以在實際應用中,要先在kibana中完善搜尋代碼,隻要kibana中能夠搜尋出來,Java代碼一般來說也能行,這樣能夠縮短代碼調試的時間。
本文來自部落格園,作者:|舊市拾荒|,轉載請注明原文連結:https://www.cnblogs.com/xiaoyh/p/16167741.html