大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java中ElasticSearch模糊查詢的示例

Java中ElasticSearch模糊查詢的示例

更新時間:2022-12-08 11:29:13 來源:動力節點 瀏覽2224次

ElasticSearch 模糊查詢可用于用戶使用錯誤輸入的關鍵字或拼寫錯誤進行搜索的場景。或者,它也可以用于基于Levenshtein Edit Distance搜索相似詞,Levenshtein Edit Distance可以定義為將一個詞更改為另一個詞所需的最小單字符編輯(插入、刪除或替換)次數。

在這篇文章中,演示了使用ElasticSearch Java API的模糊搜索。包括以下幾點:

使用 ElasticSearch 和 Kibana 進行設置

ElasticSearch 庫 POM 條目

使用 Fuzzy Query API 進行模糊搜索

使用 Match Query API 進行模糊搜索

使用布爾查詢 API 進行模糊搜索

使用 ElasticSearch 和 Kibana 進行設置

首先,設置 ElasticSearch 和 Kibana。

ElasticSearch 庫 POM 條目

創建 Java Maven 項目。將以下內容放入 pom.xml 文件中以使用 ElasticSearch Java API:

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>transport</artifactId>
    <version>6.2.2</version>
</dependency>
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20180130</version>
</dependency>

使用模糊查詢 API 進行模糊搜索

使用模糊查詢搜索索引需要注意以下幾點:

創建一個 TransportClient 的實例

使用 fuzzyQuery API 創建 QueryBuilder 實例

創建用于創建請求對象的 SearchRequestBuilder 實例

在 SearchRequestBuilder 實例上調用 Get API

遍歷搜索結果

public class App { 
    private static final String INDEX_NAME = "recruitment";
    private static final String INDEX_TYPE = "interviews"; 
    public static void main(String[] args) throws IOException {
        //
        // Create an instance of TransportClient
        //
        TransportClient client = = new PreBuiltTransportClient(Settings.EMPTY)
                .addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
        //
        // Create a query builder using fuzzyQuery Method
        // Name of the key to search: name
        // Value to search: "vitalflux"
        //
        QueryBuilder queryBuilder = QueryBuilders.fuzzyQuery(name, "vitalflux").boost(1.0f).prefixLength(0).fuzziness(Fuzziness.ONE).transpositions(true);
        //
        // Create an instance of SearchRequestBuilder
        //
        SearchRequestBuilder requestBuilder = client.prepareSearch(INDEX_NAME).setTypes(INDEX_TYPE)
                .setQuery(queryBuilder).setSize(100);
        //
        // Get the search result
        //
        SearchResponse response = requestBuilder.get();
        //
        // Iterate through search results
        //
        SearchHit[] srchHits = response.getHits().getHits();
        String[] result = new String[srchHits.length];
        int i = 0;
        for (SearchHit srchHit : srchHits) {
            result[i++] = (String) srchHit.getSourceAsMap().get(KEY_NAME);
        }
    }
}

使用匹配查詢 API 進行模糊搜索

以下代碼可用于使用 Match Query API 構建 QueryBuilder 實例,該 API 稍后用于構建 SearchRequestBuilder 實例。其余代碼與上面的代碼相同。

QueryBuilder queryBuilder = QueryBuilders.matchQuery("name", "vitalflux").fuzziness(Fuzziness.ONE).boost(1.0f).prefixLength(0).fuzzyTranspositions(true);
//
// Create an instance of SearchRequestBuilder
//
SearchRequestBuilder requestBuilder = client.prepareSearch(INDEX_NAME).setTypes(INDEX_TYPE).setQuery(queryBuilder).setSize(100);
//
// Get the search result
//
SearchResponse response = requestBuilder.get();

使用布爾查詢 API 進行模糊搜索

以下代碼可用于使用 Bool Query API 構建 QueryBuilder 實例,稍后用于構建 SearchRequestBuilder 實例。其余代碼與上面的代碼相同。

QueryBuilder queryBuilder = QueryBuilders.matchQuery(KEY_NAME, refNumber).fuzziness(editDistance).boost(1.0f).prefixLength(0).fuzzyTranspositions(true);
//
// Create Bool Query Builder
//
final QueryBuilder boolQueryBuilder = QueryBuilders.boolQuery().must(fuzzyQueryBuilder);
//
// Create an instance of SearchRequestBuilder
//
SearchRequestBuilder requestBuilder = client.prepareSearch(INDEX_NAME).setTypes(INDEX_TYPE).setQuery(boolQueryBuilder).setSize(100);
//
// Get the search result
//
SearchResponse response = requestBuilder.get();

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 精品国产调教最大网站女王 | 欧美亚洲精品小说一区二三区 | 波多野结衣免费免费视频一区 | 成人免费xxx色视频 成人免费播放视频777777 | 九九香蕉网 | 我想看一级黄色毛片 | 亚洲国产成人久久三区 | 精品国精品国产自在久国产不卡 | 九九热这里只有精品6 | 在线中文字幕观看 | 免费一级特黄欧美大片勹久久网 | 中文字幕亚洲高清综合 | 亚洲人成影院在线高清 | 女性一级全黄生活片在线播放 | 高清不卡毛片免费观看 | 国内精品视频成人一区二区 | 日本一区二区三区高清在线观看 | 91精品国产免费久久久久久青草 | 一区二区不卡在线观看 | 高清国产美女一级毛片 | 亚洲欧美国产日产综合不卡 | 99热久久国产精品这里小说 | 成人精品在线 | 99尹人香蕉国产免费天天拍 | 深夜你懂的在线网址入口 | 欧美日韩亚 | 在线观看国产一区二区三区99 | 欧美日韩国产片 | 狠狠操狠狠| 香蕉在线观看999 | 国产aaaaaaa毛片 | 欧美videos粗暴高清性 | 亚洲午夜视频 | 九九成人免费视频 | 成人久久 | 国产极品白嫩美女在线观看看 | 国产成人精品一区二区不卡 | 黄片毛片一级片 | 91精品全国免费观看 | 一级亚洲 | 99久久综合精品国产 |