日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

ElasticSearch: 使用Java Api 操作 ES

發布時間:2023/12/18 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ElasticSearch: 使用Java Api 操作 ES 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對索引庫作: 增、刪、改

與之對應的DSL語句

Insert

創建索引庫 (沒有建立映射)

創建指定名稱的索引庫

@Test public void createIndexTest() throws Exception {// 若是對索引庫的增刪改 都需要創建indicesClient對象, 這個就是一個操作數據庫的客戶端對象IndicesClient indicesObject = highLevelClient.indices();// 新建索引庫創建請求: 創建一個索引庫, 并指定名稱CreateIndexRequest createIndexRequest = new CreateIndexRequest("hotel");// 發出索引庫創建請求, 并接收索引庫創建請求的響應CreateIndexResponse createIndexResponse = indicesObject.create(createIndexRequest, RequestOptions.DEFAULT);// 是否創建成功log.info("\n索引庫是否創建成功: {}", createIndexResponse.isAcknowledged());log.info("\n響應結果: {}", createIndexResponse); }

創建索引庫, 并創建映射

在索引庫存在時, 創建映射會失敗, 原因: 索引庫已存在

// 給指定索引庫創建映射樹 @Test public void createMappingTest() throws Exception {// 獲取索引庫增刪改操作對象IndicesClient indicesObject = highLevelClient.indices();// 新建索引庫創建請求: 創建一個指定名稱的索引庫, 并創建映射樹CreateIndexRequest createIndexRequest = new CreateIndexRequest("hotel");// 新建映射樹createIndexRequest.mapping("{\n" +" \"properties\": {\n" +" \"id\": {\n" +" \"type\": \"keyword\"\n" +" },\n" +" \"name\": {\n" +" \"type\": \"text\",\n" +" \"analyzer\": \"ik_smart\",\n" +" \"copy_to\": \"all\"\n" +" },\n" +" \"address\": {\n" +" \"type\": \"text\",\n" +" \"analyzer\": \"ik_smart\"\n" +" },\n" +" \"price\": {\n" +" \"type\": \"integer\"\n" +" },\n" +" \"score\": {\n" +" \"type\": \"integer\"\n" +" },\n" +" \"brand\": {\n" +" \"type\": \"text\",\n" +" \"analyzer\": \"ik_smart\",\n" +" \"copy_to\": \"all\"\n" +" },\n" +" \"city\": {\n" +" \"type\": \"keyword\"\n" +" },\n" +" \"starName\": {\n" +" \"type\": \"keyword\"\n" +" },\n" +" \"business\": {\n" +" \"type\": \"keyword\",\n" +" \"copy_to\": \"all\"\n" +" },\n" +" \"location\": {\n" +" \"type\": \"geo_point\"\n" +" },\n" +" \"pic\": {\n" +" \"type\": \"keyword\",\n" +" \"index\": false\n" +" }, \n" +" \"isAD\": {\n" +" \"type\": \"boolean\"\n" +" },\n" +" \"all\": {\n" +" \"type\": \"text\",\n" +" \"analyzer\": \"ik_smart\"\n" +" }\n" +" }\n" +" }", XContentType.JSON);// 發送創建帶有映射樹的索引庫請求, 并接收創建索引庫請求的響應CreateIndexResponse createIndexResponse = indicesObject.create(createIndexRequest, RequestOptions.DEFAULT);// 是否創建成功log.info("\n索引庫是否創建成功: {}", createIndexResponse.isAcknowledged());log.info("\n響應結果: {}", createIndexResponse); }

Delete

刪除指定的索引庫

刪除指定索引庫

@Test public void deleteIndexTest() throws Exception {// 獲取刪除索引庫對象IndicesClient indicesObject = highLevelClient.indices();// 新建刪除索引庫請求: 刪除一個指定名稱的索引庫DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("hotel");// 發出刪除索引庫請求, 并接受刪除索引庫請求的響應AcknowledgedResponse deleteIndexResponse = indicesObject.delete(deleteIndexRequest, RequestOptions.DEFAULT);// 判斷是否刪除成功log.info("\n Hotel索引庫是否刪除成功: {}", deleteIndexResponse.isAcknowledged());log.info("\n響應結果: {}", deleteIndexResponse); }

對文檔作: 增、刪、改、查

Insert / Update (ES處理修改時, 是作覆蓋式修改)

批量添加 (方案一)

導入數據庫中的數據到ES中 (批量導入)

public void createIndexWithMappingWithImportData() throws Exception {// 獲取索引庫操作對象IndicesClient indicesObject = highLevelClient.indices();// 創建索引庫CreateIndexRequest createIndexRequest = new CreateIndexRequest("hotel");// 創建映射createIndexRequest.mapping("{\n" +" \"properties\": {\n" +" \"id\": {\n" +" \"type\": \"keyword\"\n" +" },\n" +" \"name\": {\n" +" \"type\": \"text\",\n" +" \"analyzer\": \"ik_max_word\",\n" +" \"copy_to\": \"all\"\n" +" },\n" +" \"address\": {\n" +" \"type\": \"text\",\n" +" \"analyzer\": \"ik_max_word\"\n" +" },\n" +" \"price\": {\n" +" \"type\": \"integer\"\n" +" },\n" +" \"score\": {\n" +" \"type\": \"integer\"\n" +" },\n" +" \"brand\": {\n" +" \"type\": \"text\",\n" +" \"analyzer\": \"ik_max_word\",\n" +" \"copy_to\": \"all\"\n" +" },\n" +" \"city\": {\n" +" \"type\": \"keyword\"\n" +" },\n" +" \"starName\": {\n" +" \"type\": \"keyword\"\n" +" },\n" +" \"business\": {\n" +" \"type\": \"keyword\",\n" +" \"copy_to\": \"all\"\n" +" },\n" +" \"location\": {\n" +" \"type\": \"geo_point\"\n" +" },\n" +" \"pic\": {\n" +" \"type\": \"keyword\",\n" +" \"index\": false\n" +" }, \n" +" \"isAD\": {\n" +" \"type\": \"boolean\"\n" +" },\n" +" \"all\": {\n" +" \"type\": \"text\",\n" +" \"analyzer\": \"ik_max_word\"\n" +" }\n" +" }\n" +" }",XContentType.JSON);// 發送索引庫創建請求CreateIndexResponse createIndexResponse = indicesObject.create(createIndexRequest, RequestOptions.DEFAULT);log.info("\n索引庫創建結果: {}", createIndexResponse.isAcknowledged());log.info("\n響應結果: {}", createIndexResponse);// 查詢數據庫List<Hotel> hotels = hotelMapper.selectList(null);// Copy 到 HotelDochotels.forEach(hotel -> {try {// 將Hotel Copy To HotelDoc 中HotelDoc hotelDoc = new HotelDoc(hotel);// 創建文檔IndexRequest hotelIndex = new IndexRequest("hotel").id(hotel.getId().toString());// 將HotelDoc轉換為JsonString hotelDocToJson = objectMapper.writeValueAsString(hotelDoc);// 填充內容hotelIndex.source(hotelDocToJson, XContentType.JSON);// 發送文檔創建請求IndexResponse indexResponse = highLevelClient.index(hotelIndex, RequestOptions.DEFAULT);// 獲取創建后的文檔idlog.info("ES文檔, id: {}",indexResponse.getId());} catch (Exception e) {throw new RuntimeException(e);}});}

批量添加 (方案二)

批量添加 (方案二)

@Test public void BulkSearchDocument() throws Exception {// 查詢數據庫中的所有數據List<Hotel> hotels = hotelMapper.selectList(null);// 獲取批量添加對象BulkRequest bulkRequest = new BulkRequest();// 遍歷所有數據hotels.forEach(hotel -> {try {// 查詢所有數據HotelDoc hotelDoc = new HotelDoc(hotel);// 將查詢的結果轉換為JsonString hotelDocToJson = objectMapper.writeValueAsString(hotelDoc);// 設定指定索引庫 及 文檔idIndexRequest indexRequest = new IndexRequest("hotel").id(hotel.getId().toString());// 將Json添加到IndexRequest請求中indexRequest.source(hotelDocToJson, XContentType.JSON);// 添加請求bulkRequest.add(indexRequest);}catch (Exception e) {throw new RuntimeException(e.getMessage());}});// 發送批量添加請求BulkResponse bulkResponse = highLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);log.info("批量添加結果: {}", bulkResponse.status()); }

Query

查詢指定文檔id

指定文檔id, 查詢文檔

public void queryDocument() throws Exception {// 指定索引庫民初, 獲取查詢文檔的請求對象GetRequest hotel = new GetRequest("hotel").id("36934");// 發送查詢請求GetResponse getResponse = highLevelClient.get(hotel, RequestOptions.DEFAULT);// 獲取查詢結果String sourceAsString = getResponse.getSourceAsString();// 將Json轉換為HotelDoc實體類HotelDoc hotelDoc = objectMapper.readValue(sourceAsString, HotelDoc.class);log.info("hotelDoc: {}", hotelDoc); }

Delete

刪除指定文檔id

刪除指定文檔id

public void deleteDocument() throws Exception {// 獲取指定索引庫, 且指定文檔id的刪除文檔對象var deleteRequest = new DeleteRequest("hotel").id("36934");// 發送刪除文檔請求DeleteResponse deleteResponse = highLevelClient.delete(deleteRequest, RequestOptions.DEFAULT);log.info("deleteResponse: {}", deleteResponse.getId()); }

條件查詢

查詢所有 (沒有特定條件)

public void queryAllDocument() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件: 查詢所有SearchSourceBuilder matchAllQuery = searchRequest.source().query(QueryBuilders.matchAllQuery());// 設置展示的條目searchRequest.source().size(1000);// 發送查詢請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 處理查詢結果ArrayList<HotelDoc> hotelDocs = new ArrayList<>();// 獲取查詢結果集SearchHits hits = searchResponse.getHits();// 遍歷結果集for (SearchHit hit : hits) {// 獲取文檔內容JsonString searchResult = hit.getSourceAsString();// 將Json轉換為JavaBeanHotelDoc hotelDoc = objectMapper.readValue(searchResult, HotelDoc.class);// 添加到集合中hotelDocs.add(hotelDoc);}// 全文查詢狀態log.info("\n查詢全部狀態: {}", searchResponse.status());// 輸出所有查詢結果hotelDocs.forEach(hotelDoc -> log.info("\n查詢全部結果: {}", hotelDoc)); }

單字段查詢

public void queryOneDocument() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件: 單字段查詢searchRequest.source().query(QueryBuilders.matchQuery("all", "如家"));// 設置展示條目searchRequest.source().size(1000);// 發送查詢請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 收集結果ArrayList<HotelDoc> hotelDocs = new ArrayList<>();// 處理查詢結果SearchHits hits = searchResponse.getHits();// 遍歷結果集for (SearchHit hit : hits) {// 獲取查詢的結果String searchResult = hit.getSourceAsString();// 將結果(Json串) 轉換為 JavaBeanHotelDoc hotelDoc = objectMapper.readValue(searchResult, HotelDoc.class);hotelDocs.add(hotelDoc);}// 單字段查詢狀態log.info("\n單字段查詢狀態: {}", searchResponse.status());// 輸出所有查詢結果hotelDocs.forEach(hotelDoc -> log.info("\n單字段查詢結果: {}", hotelDoc)); }

多字段查詢

public void queryManyDocuments() throws Exception {// 獲取查詢請求對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件: 多字段查詢searchRequest.source().query(QueryBuilders.multiMatchQuery("如家", "name", "brand"));// 設置展示條目searchRequest.source().size(1000);// 發送查詢請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 收集結果ArrayList<HotelDoc> hotelDocs = new ArrayList<>();// 處理查詢結果SearchHits hits = searchResponse.getHits();// 遍歷結果集for (SearchHit hit : hits) {// 獲取結果String searchResult = hit.getSourceAsString();// 將查詢結果轉換為JavaBeanHotelDoc hotelDoc = objectMapper.readValue(searchResult, HotelDoc.class);hotelDocs.add(hotelDoc);}// 多字段查詢狀態log.info("\n多字段查詢狀態: {}", searchResponse.status());// 輸出所有查詢結果hotelDocs.forEach(hotelDoc -> log.info("\n多字段查詢結果: {}", hotelDoc)); }

精準查詢 (不會對查詢條件分詞)

Term (精準值查詢)

@Test public void termSearch() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件TermQueryBuilder queryBuilder = QueryBuilders.termQuery("name", "如家");searchRequest.source().query(queryBuilder);// 設置頁面大小searchRequest.source().size(1000);// 發送查詢請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 收集查詢結果ArrayList<HotelDoc> hotelDocs = new ArrayList<>();// 處理查詢結果SearchHits hits = searchResponse.getHits();// 遍歷結果集for (SearchHit hit : hits) {// 獲取查詢結果String searchResult = hit.getSourceAsString();// Json轉換為JavaBeanHotelDoc hotelDoc = objectMapper.readValue(searchResult, HotelDoc.class);hotelDocs.add(hotelDoc);}// 精確查詢狀態log.info("\n精確查詢狀態: {}", searchResponse.status());// 輸出所有查詢結果hotelDocs.forEach(hotelDoc -> log.info("\n精確查詢結果: {}", hotelDoc)); }

Range (范圍查詢)

@Test public void rangeSearch() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件: gte: 大于等于, lte: 小于等于searchRequest.source().query(QueryBuilders.rangeQuery("price").gte(99).lte(199));searchRequest.source().size(1000);// 發送查詢請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 收集查詢結果ArrayList<HotelDoc> hotelDocs = new ArrayList<>();// 處理查詢結果SearchHits hits = searchResponse.getHits();// 遍歷結果集for (SearchHit hit : hits) {// 獲取查詢結果String searchResult = hit.getSourceAsString();// Json轉換為JavaBeanHotelDoc hotelDoc = objectMapper.readValue(searchResult, HotelDoc.class);hotelDocs.add(hotelDoc);}// 范圍查詢狀態log.info("\n范圍查詢狀態: {}", searchResponse.status());// 輸出所有查詢結果hotelDocs.forEach(hotelDoc -> log.info("\n范圍查詢結果: {}", hotelDoc)); }

地理位置查詢

圓形

public void geoDistanceSearch() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件searchRequest.source().query(QueryBuilders.geoDistanceQuery("location").point(new GeoPoint(31.21, 121.5)).distance("15km")).size(1000);// 發送查詢條件SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 收集查詢結果ArrayList<HotelDoc> hotelDocs = new ArrayList<>();// 處理查詢結果SearchHits hits = searchResponse.getHits();// 遍歷結果集for (SearchHit hit : hits) {// 獲取查詢結果String searchResult = hit.getSourceAsString();// Json轉換JavaBeanHotelDoc hotelDoc = objectMapper.readValue(searchResult, HotelDoc.class);// 添加到集合hotelDocs.add(hotelDoc);}// 地理坐標查詢狀態log.info("\n地理坐標查詢狀態: {}", searchResponse.status());// 輸出所有查詢結果hotelDocs.forEach(hotelDoc -> log.info("\n地理坐標查詢結果: {}", hotelDoc)); }

矩形

public void geoBoundingBoxSearch() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件searchRequest.source().query(QueryBuilders.geoBoundingBoxQuery("location").setCorners(new GeoPoint(31.1, 121.5),new GeoPoint(30.9, 121.7))).size(1000);// 發送查詢請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 接收結果ArrayList<HotelDoc> hotelDocs = new ArrayList<>();// 處理查詢結果SearchHits hits = searchResponse.getHits();// 遍歷結果集for (SearchHit hit : hits) {// 獲取查詢結果String searchResult = hit.getSourceAsString();// Json轉換為JavaBeanHotelDoc hotelDoc = objectMapper.readValue(searchResult, HotelDoc.class);// 添加到集合hotelDocs.add(hotelDoc);}// 地理坐標查詢狀態log.info("\n地理坐標查詢狀態: {}", searchResponse.status());// 輸出所有查詢結果hotelDocs.forEach(hotelDoc -> log.info("\n地理坐標查詢結果: {}", hotelDoc)); }

組合條件查詢

查詢全國的酒店名稱不為七天的上海的所有酒店, 價格范圍大于等于99, 小于等于199, 而且查詢的地址位置是31,21, 121.5, 范圍半徑20km

@Test public void boolSearch() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件searchRequest.source().query(QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery("price").gte(99).lte(199)).mustNot(QueryBuilders.termQuery("name", "七天")).filter(QueryBuilders.geoDistanceQuery("location").point(31.21, 121.5).distance("20km")).should(QueryBuilders.termQuery("city", "上海"))).size(1000);// 發送查詢請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 接收查詢結果ArrayList<HotelDoc> hotelDocs = new ArrayList<>();// 處理查詢結果for (SearchHit hit : searchResponse.getHits()) {// 獲取查詢結果String searchResult = hit.getSourceAsString();// Json 轉換為 JavaBeanHotelDoc hotelDoc = objectMapper.readValue(searchResult, HotelDoc.class);// 添加查詢結果hotelDocs.add(hotelDoc);}// 組合條件查詢狀態log.info("\n組合條件查詢狀態: {}", searchResponse.status());// 輸出所有查詢結果hotelDocs.forEach(hotelDoc -> log.info("\n組合條件查詢結果: {}", hotelDoc)); }

算分查詢

查詢如家酒店, 對于深圳的如家進行+10分

public void addScoreSearch() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件searchRequest.source().query(QueryBuilders.functionScoreQuery(QueryBuilders.matchQuery("all", "如家"),new FunctionScoreQueryBuilder.FilterFunctionBuilder[]{new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.termQuery("city", "深圳"),ScoreFunctionBuilders.weightFactorFunction(10f))}).boostMode(CombineFunction.SUM)).size(1000);// 發送查詢請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 接收查詢結果ArrayList<HotelDoc> hotelDocs = new ArrayList<>();// 處理查詢結果for (SearchHit hit : searchResponse.getHits()) {// 獲取查詢結果String searchResult = hit.getSourceAsString();// Json 轉換為 JavaBeanHotelDoc hotelDoc = objectMapper.readValue(searchResult, HotelDoc.class);// 添加查詢結果hotelDocs.add(hotelDoc);}// 算分查詢狀態log.info("\n算分查詢狀態: {}", searchResponse.status());// 輸出所有查詢結果hotelDocs.forEach(hotelDoc -> log.info("\n算分查詢結果: {}", hotelDoc)); }

排序查詢

地理位置排序查詢

查找離設定經緯度坐標最近的如家酒店

@Test public void orderSearch() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件searchRequest.source().query(QueryBuilders.matchQuery("all", "如家")).sort(SortBuilders.geoDistanceSort("location", new GeoPoint(39.76, 116.33)) // SortBuilders.geoDistanceSort("location", 39.76, 116.33) 兩者結果一致.order(SortOrder.ASC).unit(DistanceUnit.KILOMETERS)).size(1000).from(0) // 從第一頁開始查詢.size(7) // 每次查詢7條, 類似于mysql中的limit, 使用了這個, 就會覆蓋query下的size, DSL語句會報錯, 但JavaCode不會;// 發送查詢請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 處理查詢結果SearchHits hits = searchResponse.getHits();// 地理位置排序查詢狀態log.info("\n地理位置排序查詢狀態: {}", searchResponse.status());// 地理位置排序查詢總條目log.error("\n地址位置排序查詢總條目: {}", hits.getTotalHits().value);// 遍歷結果集for (SearchHit hit : hits) {// 獲取查詢結果String searchResult = hit.getSourceAsString();// 獲取查詢出的酒店位置距離設定的位置有多遠Object[] sortValues = hit.getSortValues();// 若不是經緯度查詢, 則距離值則為空, 直接Json轉換為JavaBeanHotelDoc hotelDoc = objectMapper.readValue(searchResult, HotelDoc.class);// 輸出查詢結果log.info("\n查詢結果: {}", hotelDoc);log.info("距離設定的位置有: {}km", sortValues[0]);} }

指定字段排序查詢

倒序查詢全國所有如家品牌酒店的價格

@Test public void sortSearchAll() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件searchRequest.source().query(QueryBuilders.matchQuery("all", "如家")).sort(SortBuilders.fieldSort("price").order(SortOrder.DESC)).size(1000);// 發送查詢請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 收集查詢結果ArrayList<HotelDoc> hotelDocs = new ArrayList<>();// 處理查詢結果SearchHits hits = searchResponse.getHits();// 遍歷結果集for (SearchHit hit : hits) {// 獲取查詢結果String searchResult = hit.getSourceAsString();// Json轉換為JavaBeanHotelDoc hotelDoc = objectMapper.readValue(searchResult, HotelDoc.class);// 添加到集合hotelDocs.add(hotelDoc);}// 指定字段排序查詢狀態log.info("\n地理位置排序查詢狀態: {}", searchResponse.status());// 指定字段排序查詢總條目log.error("\n指定字段排序查詢總條目: {}", hits.getTotalHits().value);// 輸出所有查詢結果hotelDocs.forEach(hotelDoc -> log.info("\n指定字段排序查詢結果: {}", hotelDoc)); }

高亮顯示

查詢如家酒店, 并高亮顯示為粉色

@Test public void highlightSearch() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件searchRequest.source().query(QueryBuilders.matchQuery("all", "如家")).from(6) // 顯示第2頁數據.size(7) // 只顯示7條.highlighter(SearchSourceBuilder.highlight().field("name").requireFieldMatch(false).preTags("<font color = 'pink'>").postTags("</font>"));// 發送查詢請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 收集查詢結果ArrayList<HotelDoc> hotelDocs = new ArrayList<>();// 處理查詢結果SearchHits hits = searchResponse.getHits();// 遍歷結果集for (SearchHit hit : hits) {// 獲取查詢結果String searchResult = hit.getSourceAsString();// Json轉換為JavaBeanHotelDoc hotelDoc = objectMapper.readValue(searchResult, HotelDoc.class);// 處理高亮結果: 獲取需要高亮的字段HighlightField nameHighlightField = hit.getHighlightFields().get("name");// 判斷HighlightField對象不為空, ObjectUtil是MyBatisPlus的工具類if (ObjectUtils.isEmpty(nameHighlightField)) {// 獲取第一個元素內容Text newValue = nameHighlightField.getFragments()[0];// 將Json轉換后的JavaBean中指定的屬性替換為新的值hotelDoc.setName(newValue.toString());}// 添加到集合hotelDocs.add(hotelDoc);}// 指定字段高亮顯示查詢狀態log.info("\n指定字段高亮顯示查詢狀態: {}", searchResponse.status());// 指定字段高亮顯示查詢總條目log.error("\n指定字段高亮顯示查詢總條目: {}", hits.getTotalHits().value);// 輸出所有查詢結果hotelDocs.forEach(hotelDoc -> log.info("\n指定字段高亮顯示查詢結果: {}", hotelDoc)); }

聚合查詢

Bucket (桶查詢)

聚合查詢: 桶聚合, 查詢全國每個城市的酒店數量

@Test public void bucketSearch() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");// 構建查詢條件searchRequest.source().size(0).aggregation(AggregationBuilders.terms("cityCountAgg") // 桶名稱.field("city") // 統計字段.order(BucketOrder.count(true) // true = asc, false = desc).size(7) // 只展示7條數據);// 發送查詢請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 處理查詢結果: 接收結果必須使用Terms, 并且是ElasticSearch包中的Terms cityCountAgg = searchResponse.getAggregations().get("cityCountAgg");// 獲取桶List<? extends Terms.Bucket> cityBuckets = cityCountAgg.getBuckets();// 遍歷結果集for (Terms.Bucket cityBucket : cityBuckets) {// 獲取統計到的城市名稱String cityName = cityBucket.getKeyAsString();// 獲取統計到的城市的所有酒店數量long cityCount = cityBucket.getDocCount();log.info("統計到的城市名稱: {}", cityName);log.info("獲取統計到的城市的所有酒店數量: {}", cityCount);} }

自動補全

@Test public void autoCompletionSearch() throws Exception {// 獲取查詢對象SearchRequest searchRequest = new SearchRequest("hotel");//添加自動補全的查詢條件searchRequest.source().suggest(new SuggestBuilder().addSuggestion("searchSuggetion",SuggestBuilders.completionSuggestion("suggestion").prefix("如").skipDuplicates(true).size(33)));//發出請求SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);// 處理結果集CompletionSuggestion searchSuggetion = searchResponse.getSuggest().getSuggestion("searchSuggetion");List<CompletionSuggestion.Entry.Option> options = searchSuggetion.getOptions();List<String> result = new ArrayList<>();//遍歷options取出所有的提示內容存儲到集合中,返回for (CompletionSuggestion.Entry.Option option : options) {result.add(option.getText().toString());}log.info("\n自動補全查詢結果: {}", result); }

總結

以上是生活随笔為你收集整理的ElasticSearch: 使用Java Api 操作 ES的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品第十页 | 99精品国产一区二区 | 欧美一二区在线 | 免费色av | 亚洲mv大片欧洲mv大片免费 | 久久成人欧美 | 久久人人插 | 91免费日韩 | 国产精品丝袜久久久久久久不卡 | 久久久av免费 | 天天操夜夜逼 | 999电影免费在线观看2020 | 久久精品中文字幕免费mv | 日韩精品无 | 五月开心色 | 国产综合精品一区二区三区 | 国产一级电影网 | 激情欧美一区二区三区 | 日本中文在线播放 | 国内久久精品视频 | 成人免费看视频 | 国产视频 亚洲视频 | 久久观看免费视频 | 成人国产电影在线观看 | 成人精品一区二区三区电影免费 | 婷婷精品进入 | 久久超| 四虎国产精品免费 | 97在线观看免费观看高清 | av免费网站在线观看 | 久久精品中文 | 日韩一二三在线 | 999国内精品永久免费视频 | 涩涩爱夜夜爱 | 色夜视频| 国产人免费人成免费视频 | 欧美作爱视频 | 成人免费xxx在线观看 | 黄色大全免费网站 | 欧美精品一区二区免费 | 免费在线观看av网址 | 日韩电影一区二区三区 | 一色屋精品视频在线观看 | 欧美一区免费观看 | 天天视频亚洲 | 99色在线观看视频 | 天天插综合 | 91麻豆精品一区二区三区 | 91精品无人成人www | 国产精品成人a免费观看 | 国产一区在线免费观看 | 亚洲精品高清视频 | 狠狠干成人| 久久涩涩网站 | 精品国产一区二区三区久久久蜜月 | 久久精品亚洲精品国产欧美 | 毛片网站在线看 | 超碰在线最新地址 | 九九免费在线观看 | 深夜免费福利在线 | 日韩欧美高清视频在线观看 | 久久免费电影网 | 日韩免费观看av | 精品国产电影一区二区 | 操天天操 | 日韩中文字幕免费看 | 亚洲理论片 | 欧美另类高潮 | 2024av在线播放| 91爱爱中文字幕 | 欧美久久久久久 | 久久精品国产一区 | 一级片免费观看视频 | 国产精品免费成人 | 激情深爱.com | 国产91丝袜在线播放动漫 | 亚洲理论影院 | 国产一区福利在线 | 欧美最猛性xxxxx(亚洲精品) | 国产免费不卡av | 国产成人不卡 | 日本韩国精品一区二区在线观看 | 亚洲高清久久久 | 日韩精品免费在线观看视频 | 国产精品日韩欧美一区二区 | 玖玖精品在线 | 欧美aa级| 免费高清在线观看成人 | 亚洲国产中文字幕 | www.色国产 | 国产黄色大片 | 欧美久草网 | 一本之道乱码区 | 欧美 国产 视频 | 欧美日韩视频在线观看免费 | 中文字幕日韩在线播放 | 久久艹国产视频 | 国产高清视频在线播放一区 | 国产特黄色片 | 国产精品手机播放 | 国产精品美女在线 | 在线99视频 | 婷婷色在线观看 | 激情视频综合网 | 日韩精品在线观看av | 日韩高清观看 | 日韩字幕| 91九色pron| 久人人 | 久久精品国产精品亚洲 | 久草在线免 | 久草a在线 | 久久久久久久影院 | 免费观看成人 | www.av在线播放 | 国产视频一区二区三区在线 | 亚洲午夜精品久久久久久久久久久久 | 中文字幕免费观看视频 | 日本久久久亚洲精品 | 成人午夜性影院 | 成人亚洲精品国产www | 国产精品自产拍在线观看中文 | 久久好看免费视频 | 亚洲闷骚少妇在线观看网站 | 一区二区三区福利 | 亚洲va欧美va国产va黑人 | 午夜久久久久久久久久久 | 91久久丝袜国产露脸动漫 | 99久热在线精品视频成人一区 | 1024在线看片 | 国产成人专区 | 美女视频黄是免费的 | 国产精品久久久久久久久久新婚 | 91chinese在线| 久久久久二区 | 91精品国产综合久久久久久久 | 国产在线精品区 | 国产精品久久久av久久久 | 欧美国产精品一区二区 | 五月婷婷中文字幕 | 最新精品视频在线 | 日韩精品视频在线观看网址 | 精品在线你懂的 | 91人人爽人人爽人人精88v | 天堂av在线网站 | 亚洲精品短视频 | av一区二区在线观看中文字幕 | 九九久久久久久久久激情 | 国产做aⅴ在线视频播放 | 欧美色就是色 | 又黄又爽又刺激视频 | av电影在线免费观看 | 99视频一区二区 | 亚洲精品a区 | 成人免费网站在线观看 | 色综合国产 | 日本一区二区免费在线观看 | 久久一区国产 | 日日操日日干 | 欧美日韩视频精品 | 美女国产免费 | 亚洲视屏 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 成人av地址 | www色com | 日韩av一区二区三区 | 欧美国产亚洲精品久久久8v | 在线观看aaa | 美女黄久久 | 欧美日韩在线播放 | 欧美日韩综合在线 | 色婷婷88av视频一二三区 | 国产精品伦一区二区三区视频 | 日韩大片在线看 | av大片免费 | 91精品国产91久久久久 | 亚洲精品99久久久久中文字幕 | 超碰公开在线观看 | 色就干| 国产免费观看高清完整版 | 国产精品久久久电影 | 国产精品美乳一区二区免费 | 亚洲精品九九 | 亚洲区二区 | 国产香蕉97碰碰久久人人 | 亚洲精品日韩在线观看 | 婷婷五月色综合 | av综合网址 | 国产精品久久久久久99 | 中文字幕在线精品 | 日韩 国产 | 免费在线 | 四虎影视国产精品免费久久 | 国产一级视频在线 | 日韩字幕 | 久久精品xxx | 免费av免费观看 | av一区二区在线观看中文字幕 | 日韩伦理片一区二区三区 | 日日夜夜狠狠干 | 韩国av不卡 | 国产精品99久久久久久久久久久久 | 91在线免费观看网站 | 中文字幕av在线 | mm1313亚洲精品国产 | 国产1区2 | 精品中文字幕在线播放 | 黄色毛片大全 | 免费色网站 | 亚洲国产小视频在线观看 | 日韩在线色 | 免费日韩 精品中文字幕视频在线 | 99精品小视频 | 中文字幕免费观看全部电影 | 国产免费叼嘿网站免费 | 在线免费观看黄色大片 | 五月黄色 | 天天操天天曰 | 日韩精品久久一区二区 | 三级动态视频在线观看 | 在线免费视频你懂的 | 国产免费一区二区三区最新 | 欧美性一级观看 | 国产精品久久久久久麻豆一区 | 精品久久一区二区 | 麻豆91精品91久久久 | 天天射综合网视频 | 美女网站色 | 黄色成人小视频 | 性色av一区二区三区在线观看 | 97超碰站 | 日韩欧美一区二区在线 | 99re亚洲国产精品 | 69国产盗摄一区二区三区五区 | www.亚洲视频.com| 国内成人av| av网在线观看| 免费日韩电影 | 国产午夜三级一二三区 | 久久国产精品精品国产色婷婷 | 日韩久久网站 | 中文字幕在线观看91 | 在线看片中文字幕 | japanesexxxhd奶水 91在线精品一区二区 | 中文字幕电影高清在线观看 | 国产视频亚洲视频 | 91麻豆精品国产91久久久久久 | 激情综合国产 | 欧美日韩亚洲第一 | 色婷婷影视 | 中文字幕在线影院 | 日韩欧美高清免费 | 在线视频 你懂得 | 久久精品视频在线观看免费 | 激情视频在线高清看 | 国产精品美女久久久久久久久久久 | a黄色一级 | 六月丁香久久 | 91精品国产一区 | 国产精品久久久久久久午夜片 | 欧美日韩免费在线视频 | 欧美一二三区在线播放 | 久草在线视频首页 | 美国三级黄色大片 | 成人av电影免费 | 久久99精品久久久久久秒播蜜臀 | 国产精国产精品 | 激情文学综合丁香 | 日韩女同av | 在线免费观看国产视频 | 天天天天色综合 | 9热精品| 97视频在线免费观看 | 在线影院中文字幕 | 亚洲精品高清一区二区三区四区 | 国产精品va在线播放 | av高清在线| 色视频在线观看免费 | 狠狠操操| 国产一区在线播放 | 看片一区二区三区 | 午夜免费在线观看 | av网站有哪些 | 天堂av网在线 | 国产成人精品福利 | 日韩电影一区二区三区在线观看 | 欧美日韩网址 | 99久久这里只有精品 | 日韩精品一区二区三区水蜜桃 | 久久激情视频免费观看 | 97超碰精品| 久久精品视 | 精品国产成人av | www.com黄| 午夜久久影院 | 黄色影院在线免费观看 | 久久精品爱爱视频 | 99精品在线播放 | 综合网在线视频 | 国产成人精品一区二区三区在线 | 久久五月婷婷综合 | 色在线高清 | 国内精自线一二区永久 | 成人国产精品久久久春色 | 久久久精品福利视频 | 97超碰人人澡人人爱 | 久久草在线免费 | 日产av在线播放 | 色欧美成人精品a∨在线观看 | 国产日韩精品一区二区在线观看播放 | 欧美日韩一区二区三区免费视频 | 人人澡人人爽欧一区 | 色视频在线看 | 国产中文字幕视频在线观看 | 久久免费国产视频 | 最近中文字幕完整视频高清1 | 久久综合五月天婷婷伊人 | 国产精品尤物视频 | 青春草视频在线播放 | 亚洲永久精品国产 | 国产麻豆精品久久 | 区一区二区三区中文字幕 | 久久久久久精 | 激情五月播播久久久精品 | 亚洲成人资源在线观看 | 欧美激情综合五月色丁香小说 | 蜜桃av观看 | 在线观看av网站 | 久久精品综合视频 | 国产高清视频在线观看 | 中文字幕成人 | 婷婷深爱 | 日韩高清www| 视频一区亚洲 | 亚洲精品999 | 天天操天天摸天天爽 | 日韩欧美在线视频一区二区三区 | a视频在线播放 | 啪啪动态视频 | 久青草电影 | 国产精品日韩在线播放 | 毛片一区二区 | 国产大片黄色 | 久久人人做| 午夜婷婷在线播放 | 国产精品一区二区美女视频免费看 | 久久综合婷婷国产二区高清 | av官网在线 | 中文视频在线 | 亚洲精品欧美精品 | 麻豆视频在线看 | 91视频3p| 婷婷九月丁香 | 热久精品| 国产精品免费一区二区三区 | 欧美电影在线观看 | 深夜免费小视频 | 在线观看涩涩 | 欧美美女一级片 | 欧美日韩国产亚洲乱码字幕 | 日韩欧美精品在线 | 九九热只有这里有精品 | 九九视频在线观看视频6 | 五月激情姐姐 | 久久久久久蜜av免费网站 | 午夜在线观看影院 | 国产精品黄色影片导航在线观看 | 国产一级片免费观看 | 精品国产一区二区三区日日嗨 | 久久久久久久久久久久影院 | 日日爽夜夜爽 | 天天躁日日躁狠狠躁 | 日韩av黄 | 国产精品久久久久久久久久东京 | 日韩精品第1页 | 久草免费在线 | 美女网站视频一区 | 欧美日韩免费一区二区 | 色婷婷视频在线观看 | 激情视频国产 | 精品在线视频播放 | 国产高清av免费在线观看 | 亚洲少妇激情 | 欧美不卡视频在线 | 在线观看福利网站 | 精品99免费视频 | 手机在线看a | 2020天天干夜夜爽 | 亚洲高清精品在线 | 粉嫩aⅴ一区二区三区 | 久久精品一区二区三区中文字幕 | 视频在线99| 狠狠色丁香婷婷综合橹88 | 国产精品观看在线亚洲人成网 | 99在线精品视频在线观看 | 国偷自产视频一区二区久 | 久久免费资源 | 福利电影久久 | 99r在线视频| av丝袜美腿 | 久草视频视频在线播放 | 久久久99精品免费观看乱色 | 中文字幕乱码日本亚洲一区二区 | 黄色国产大片 | 亚洲综合欧美日韩狠狠色 | 午夜国产福利视频 | 4438全国亚洲精品在线观看视频 | 99热这里| 99久久网站 | 久久一区91| 四虎影视精品成人 | av性网站 | 亚洲最大色 | 精品视频123区在线观看 | 三级av中文字幕 | 久久黄色免费视频 | 美女网站在线观看 | 国产精品综合久久久久 | 鲁一鲁影院 | 天天草夜夜| 亚洲成a人片综合在线 | 狠狠撸电影| 成人av电影免费在线观看 | 91在线视频 | 韩日电影在线观看 | 欧美日韩一区二区三区免费视频 | 激情偷乱人伦小说视频在线观看 | 深夜男人影院 | 麻豆精品视频在线 | 成人一区影院 | 成年人视频在线观看免费 | 国产剧情一区 | 狠狠狠狠干 | 波多野结衣网址 | 国产二区视频在线观看 | 91福利影院在线观看 | 91亚洲欧美 | www.夜色321.com| 欧美成人按摩 | 7777xxxx| 丁香花中文字幕 | 国产亚洲视频在线免费观看 | 国产在线观看午夜 | 在线99视频| av电影免费观看 | 99午夜| 7777精品伊人久久久大香线蕉 | 国产精品99久久久久的智能播放 | 在线视频日韩欧美 | 国产日韩欧美中文 | 亚洲日本欧美在线 | 婷婷伊人综合 | 91精品网站在线观看 | 久久久久免费精品视频 | av中文字幕网站 | 免费三级大片 | 成人在线观看资源 | 日韩久久一区二区 | 亚洲男男gaygay无套同网址 | 国产精品免费视频一区二区 | 国产精品av在线 | 欧美性另类 | 国产精品 中文字幕 亚洲 欧美 | 一区二区三区视频网站 | 国产一级特黄毛片在线毛片 | 97av免费视频 | 免费精品视频在线观看 | 成在线播放 | 一区二区国产精品 | 久久成人国产精品入口 | av免费福利 | 国产一区高清在线观看 | 人人爱人人添 | 人人爽人人做 | 香蕉网在线播放 | 亚洲另类视频在线观看 | 久久国产精品久久久 | 在线一区电影 | www.天天操 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 成人一级免费电影 | 国产在线p| 黄网站色欧美视频 | 久久久国产精品人人片99精片欧美一 | 日韩乱码中文字幕 | 日韩免费大片 | 国产精品18久久久久久vr | 亚洲成av人片一区二区梦乃 | 三级动图 | 一本一道波多野毛片中文在线 | 中文字幕亚洲字幕 | 国产 在线 日韩 | 免费观看9x视频网站在线观看 | 亚洲国产精品va在线看黑人动漫 | 久热免费在线观看 | 超碰国产97 | 六月丁香伊人 | 日本3级在线观看 | 久av在线 | 91干干干| av网站播放 | 黄色精品久久 | 91系列在线 | 色偷偷88888欧美精品久久 | 国产丝袜制服在线 | 日韩av中文字幕在线 | 国产精品69久久久久 | 日本中文字幕久久 | 久久伦理视频 | 久久精品亚洲一区二区三区观看模式 | 国产成人av一区二区三区在线观看 | 欧美成人久久 | 天天爽天天摸 | 国产午夜一区 | 国产精品精品国产婷婷这里av | 日本久久电影 | 免费视频一级片 | 亚洲国产无 | 午夜精品一区二区三区免费视频 | 伊人春色电影网 | 黄色福利视频网站 | 日韩欧美一区二区三区黑寡妇 | 亚州精品国产 | 久久国产a| 成人性生活大片 | 麻豆影视网 | 国产一区在线观看视频 | 一区二区激情 | 日韩精品资源 | 中国一级片在线 | 中文字幕在线免费看线人 | av免费试看 | 国产清纯在线 | 国产精品综合久久久久久 | 开心丁香婷婷深爱五月 | 国产免费二区 | 成人av一区二区兰花在线播放 | 成年人黄色在线观看 | 久久亚洲免费视频 | 人人干在线 | 在线免费精品视频 | 中国一级片免费看 | 国产精品久久久久久久久久久不卡 | www免费看片com | 午夜国产在线观看 | 天天色宗合 | 亚洲欧美综合精品久久成人 | 国产在线999| 日韩女同一区二区三区在线观看 | 九色在线 | 97精品超碰一区二区三区 | 国产精品久久久久久久久久久杏吧 | 一区二区中文字幕在线 | 精品久久久久免费极品大片 | 国产精品久久久久久影院 | 国产精品69久久久久 | 国产成人一区二区三区免费看 | 国产成人精品一区二三区 | 久热色超碰| 999久久久久久久久久久 | 亚洲国产精品久久久久久 | 欧美黄色特级片 | 国产精品九九九 | 黄色视屏在线免费观看 | 欧美精品中文字幕亚洲专区 | 99久在线精品99re8热视频 | 在线观看亚洲国产精品 | 最新日韩精品 | 亚洲一区欧美激情 | 91丨九色丨国产在线观看 | 国产精品一区二区精品视频免费看 | 日韩欧美在线一区 | 在线不卡的av| 欧美一区三区四区 | 黄色影院在线播放 | 成片免费观看视频 | 色综合久久久 | 国产中文字幕亚洲 | 国产精品久久一区二区三区, | 欧美日韩国内在线 | 久久久噜噜噜久久久 | www.av在线.com | 欧洲av不卡 | 玖操| 日本黄色免费在线观看 | 97香蕉久久超级碰碰高清版 | 99热这里 | 亚洲精品成人在线 | 国产日韩精品一区二区在线观看播放 | 欧美最猛性xxxxx亚洲精品 | 久久综合婷婷综合 | 美女视频黄免费 | 9i看片成人免费看片 | 欧美日视频 | 国产高清av免费在线观看 | 91在线看视频免费 | 久久精品欧美一区二区三区麻豆 | 国产成人精品久久久久蜜臀 | 国内精品视频一区二区三区八戒 | 黄在线| 午夜视频色 | 96超碰在线| 91传媒在线 | 97超碰国产在线 | 中文字幕国产精品一区二区 | 国产精品视频观看 | 午夜精品一区二区三区在线播放 | 999视频在线观看 | 偷拍福利视频一区二区三区 | 久久成人毛片 | 91精品国产99久久久久久红楼 | 黄色免费高清视频 | 91精品国产欧美一区二区 | 美女国产| 福利一区二区三区四区 | 伊人精品影院 | 91av电影| 激情五月激情综合网 | 亚洲视频综合 | 国产精品久久久久久久久久 | 92中文资源在线 | 日韩欧美aaa | 在线免费观看黄 | 国产高清不卡 | 99精品视频观看 | 欧美少妇的秘密 | 91理论电影 | 97电影在线 | 国产福利一区二区三区在线观看 | 久久国产精品久久精品国产演员表 | 日韩在线高清免费视频 | 欧美日韩调教 | 91高清视频在线 | 黄色免费av | 激情综合网在线观看 | 字幕网资源站中文字幕 | 国产成人三级在线播放 | 久久精品亚洲精品国产欧美 | 国产在线视频在线观看 | 深爱激情亚洲 | 欧美成a人片在线观看久 | 91成人精品国产刺激国语对白 | 精品中文字幕在线播放 | 国产精品永久在线观看 | 综合久久精品 | 日韩av一区二区在线影视 | 色伊人网| 韩日电影在线 | 在线免费高清 | 女人18片毛片90分钟 | 精品国产_亚洲人成在线 | 亚洲美女视频在线观看 | 日韩在线视频不卡 | 美女搞黄国产视频网站 | 99c视频在线 | 国产黄色免费 | 久久99久国产精品黄毛片入口 | 在线免费视 | 国产啊v在线 | 91精品伦理 | 欧美精品一区二区三区四区在线 | 国产一区av在线 | 国产69久久久欧美一级 | 亚洲在线视频观看 | 国产爽妇网 | 成人黄在线观看 | 天天操综合网站 | 亚洲免费观看视频 | 狠狠色香婷婷久久亚洲精品 | 天天天综合| 亚洲黄在线观看 | 在线观看视频你懂的 | 午夜av免费观看 | japanesefreesex中国少妇 | 国产香蕉97碰碰久久人人 | 不卡电影一区二区三区 | 国产女人18毛片水真多18精品 | 国产拍揄自揄精品视频麻豆 | 国产在线污 | 91av视频在线免费观看 | 午夜av色 | 91精品久久久久久久久久久久久 | 婷婷在线色 | 日韩在线观看视频网站 | 午夜婷婷网 | 一级黄色片在线 | 国产一区二区在线观看视频 | 99精品国产在热久久 | 欧美一二三区播放 | 成人永久在线 | 最近中文字幕在线播放 | 日韩在线首页 | 99视频一区二区 | 日韩综合一区二区三区 | 亚洲伊人第一页 | 国产一区在线观看免费 | 亚洲精品免费视频 | 国产高清av免费在线观看 | 欧美日韩久久不卡 | 国内久久久久 | 91综合色| 久久精品综合 | 国产福利一区二区三区视频 | 五月开心六月婷婷 | 久久99精品久久久久婷婷 | 日本在线观看中文字幕无线观看 | 啪嗒啪嗒免费观看完整版 | 91成人免费在线 | 国产黄色片网站 | 日韩精品久久久久久久电影竹菊 | 亚洲人成免费 | 亚洲欧美视频在线播放 | 色婷婷www | 色婷婷亚洲精品 | 综合色中文 | 精品免费在线视频 | 天天干,天天射,天天操,天天摸 | 人人澡人人舔 | 黄色在线视频网址 | 天堂在线一区二区三区 | 日韩一区精品 | 91精品国产91热久久久做人人 | 久久美女高清视频 | 色综合天天干 | 国产精品观看视频 | 国产99久久久国产 | 久久成人资源 | 天天看天天操 | 国产 av 日韩 | 91av免费看| 日本最大色倩网站www | 国产乱对白刺激视频不卡 | 亚洲无吗天堂 | 粉嫩aⅴ一区二区三区 | 在线v| 久久草网站 | av字幕在线 | 狠狠干婷婷 | 人人插人人舔 | 日韩精品中文字幕有码 | 国产欧美在线一区二区三区 | 中文一区二区三区在线观看 | 日本字幕网 | 中国一级特黄毛片大片久久 | 久久69精品久久久久久久电影好 | 国产原创91 | 麻豆视频一区 | 国产精品va在线 | 国产精品日韩精品 | 99国内精品久久久久久久 | 国产只有精品 | 久久久久亚洲国产精品 | 97精品视频在线播放 | 亚洲国产人午在线一二区 | 黄色高清视频在线观看 | 欧美一级免费在线 | 91尤物在线播放 | 久久久久久久久久久久久国产精品 | 国产一级二级在线 | 成人久久综合 | 色综合久久精品 | 特级片免费看 | 午夜精品一区二区国产 | 日本精品久久久久影院 | 少妇bbw揉bbb欧美 | 国产精品欧美精品 | 激情久久久久久久久久久久久久久久 | av大片免费| 久久免视频| 91欧美国产 | 中文字幕在线第一页 | 欧美大码xxxx | 444av| 久久国产麻豆 | 国产精品亚州 | 97超碰中文字幕 | 免费观看v片在线观看 | 久久99在线视频 | 欧美小视频在线观看 | 日b黄色片| 精品国产电影一区 | 国产在线视频一区二区三区 | 五月激情姐姐 | 欧美aaa视频| 91免费版在线 | 国产精品成人自拍 | 国产69精品久久久久久 | 国产xvideos免费视频播放 | 成人性生交视频 | 欧美日高清视频 | 午夜精品视频一区二区三区在线看 | 久久久精品 一区二区三区 国产99视频在线观看 | 欧美国产精品久久久久久免费 | 久久久99精品免费观看 | 久久久久亚洲精品男人的天堂 | 国产在线精品国自产拍影院 | 国产视频欧美视频 | 日韩精选在线观看 | 在线成人免费电影 | 久久久精品国产免费观看一区二区 | 三级视频国产 | 国产 中文 日韩 欧美 | 黄色的视频 | 精品久久久网 | 中文字幕在线视频一区二区三区 | 欧美激情视频一二区 | 亚洲视频 视频在线 | 欧美最猛性xxxx | 精品在线播放视频 | 久草视频在线免费播放 | 亚洲天堂网站视频 | 欧美精品中文字幕亚洲专区 | 久久一区二区三区超碰国产精品 | 国产91电影在线观看 | 四虎在线免费视频 | 香蕉视频在线视频 | 免费看短 | 97视频在线免费播放 | 国产免费亚洲 | 国产中文字幕视频在线观看 | 亚洲伦理电影在线 | 激情综合色图 | 国产系列 在线观看 | 国产亚洲精品久久久久久网站 | 免费在线91 | 日韩有色 | 在线亚洲免费视频 | 日韩成人免费电影 | 久久精品久久久久久久 | 免费高清国产 | 精品国产一区二区三区久久久蜜臀 | 国产福利91精品 | 日韩在线欧美在线 | 天天搞天天干天天色 | 日韩字幕在线 | 婷婷在线资源 | 午夜精品福利一区二区 | 亚洲专区一二三 | 视频二区在线 | av网站手机在线观看 | 国产一区二区高清不卡 | 91一区一区三区 | 狠狠色丁香婷婷综合久小说久 | 欧洲亚洲精品 | 国产精品一区免费在线观看 | 日韩女同一区二区三区在线观看 | 91九色精品女同系列 | 91精品免费视频 | 97在线观看视频免费 | 在线观看黄色国产 | 欧美大片www | 国产精品免费观看视频 | 亚洲aaa毛片| 国产精品视频你懂的 | 人人人爽 | 亚洲理论影院 | 97人人爽人人 | 天天做天天爱天天综合网 | 日韩在线电影观看 | 天天色成人网 | 成人中文字幕+乱码+中文字幕 | wwwwww色| 久久久国产在线视频 | 96超碰在线 | 91视频最新网址 | 欧美一区二视频在线免费观看 | 亚洲精品高清一区二区三区四区 | 国产午夜精品一区 | 天天色天天干天天 | 国内精品久久久久久久影视简单 | 中文字幕影片免费在线观看 | av一级片在线观看 | 精品久久久久久久久久久久 | 久久香蕉电影 | 日韩午夜电影 | 91亚色免费视频 | 国产精品美女久久久久久久久久久 | 色综合国产 | 国产精品欧美日韩在线观看 | 国产人成看黄久久久久久久久 | 91资源在线免费观看 | 国内精自线一二区永久 | 色偷偷88888欧美精品久久 | 成人黄色小说视频 | 国产一区二区精品久久 | 97免费视频在线 | 91色在线观看视频 | www五月天婷婷 | 手机av资源| 亚洲午夜精品久久久久久久久久久久 | 亚洲午夜久久久久 | 亚洲精品美女久久久久网站 | 国产精品久久网 | 91激情在线视频 | 国产成人免费观看久久久 | 日躁夜躁狠狠躁2001 | 丝袜av一区 | 久久人人艹 | 国产伦理一区二区三区 | 久久精品视频在线观看 | 香蕉视频在线观看免费 | 丁香激情网 | 国内精品久久久精品电影院 | 午夜精品中文字幕 | 手机在线看永久av片免费 | 永久免费观看视频 | 日韩1级片 | 丁香婷婷激情啪啪 | 欧美久久综合 | 六月丁香在线观看 | 国内一区二区视频 | 欧美激情精品一区 | 96亚洲精品久久久蜜桃 | 久久久久久久网 | 国产精品亚洲片在线播放 | 成人免费一级片 | 五月婷婷电影网 | 欧美a免费| 日韩av一区二区三区在线观看 | 狠狠色狠狠色合久久伊人 | 久久久久久蜜av免费网站 | 成人久久久久 | 中国精品少妇 | 久章操 | 黄色大片网 | 99精品欧美一区二区蜜桃免费 | 99久久婷婷国产综合亚洲 | 久久久久北条麻妃免费看 | 黄色a在线 | 狠狠88综合久久久久综合网 | 国产免费成人 | 婷婷六月天在线 | 久久好看免费视频 | 中文在线字幕免费观看 | 91免费观看国产 | 国产在线自 | 99久久婷婷国产精品综合 | 成人在线视频你懂的 | 激情九九 | 91成人免费看片 | 国产精品中文 | 国产91影院 | 九色自拍视频 | 国产成人性色生活片 | 久久久久免费 | 一区二区三区免费在线观看 | 久久精品国产精品亚洲 | 国产 欧美 在线 | 天天舔夜夜操 | 欧美最猛性xxx | 日韩欧美一区二区三区视频 | 国产精品网址在线观看 | 中文字幕在线观看视频一区二区三区 | 午夜久久影视 | 久久久免费精品国产一区二区 | 国产一区二区视频在线播放 | 日韩午夜小视频 | av免费观看高清 | 国产一区视频免费在线观看 | 国产网红在线观看 | 日韩免费小视频 | 狠狠干免费 | 五月天电影免费在线观看一区 | 日韩精品一区二区三区免费视频观看 | 黄色片亚洲 | 精品亚洲va在线va天堂资源站 | 国产一区高清在线 | 日韩av二区| 日韩91在线 | 国内精品免费久久影院 | 69精品| 久久精品久久99精品久久 | 精品亚洲欧美无人区乱码 | 一级黄视频 | 波多野结衣视频一区 | 在线看片a | 人人射人人爱 | 精品国产99国产精品 | 激情五月婷婷激情 | 91九色成人 | 免费高清在线视频一区· | 日日夜夜狠狠 | 日韩精品久久久久久 | 国产精品一区二区三区在线 | 91九色国产视频 | 91精品国自产在线偷拍蜜桃 | 久久久久久久国产精品影院 | 欧美日产在线观看 | 激情小说 五月 | 国产午夜精品久久久久久久久久 | 一级精品视频在线观看宜春院 | 99c视频在线| 麻豆传媒视频在线 | 亚洲va韩国va欧美va精四季 | 国产黄色免费在线观看 | 97色婷婷人人爽人人 | 蜜桃麻豆www久久囤产精品 | 激情五月婷婷综合网 |