この記事では主にJavaを使用した強力なElastisearchsearchエンジンのサンプルコードを紹介していますので、興味のある方はぜひ学んでみてください
Elastisearchは非常に強力で使いやすい検索インデックスです。エンジン
システム上で Elastisearch を実行するには、次の手順のみが必要です
1. Elastisearch をダウンロードします
コードは次のとおりです:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.0.zip
2. 解凍します
unzip elasticsearch-5.4.0.zip
3. 現時点では、 elastisearch はメモリ オーバーフロー (OOM) により直接強制終了され、非常に大量のメモリを消費するため、メモリが比較的少ないサーバーで実行する場合は、まず jvm のメモリ サイズを変更する必要があります
elasticsearch-5.4.0/bin/elasticsearch
行のスタック サイズを変更する22 と 23 を 512M にします
vi elasticsearch-5.4.0/config/jvm.options
再起動後も強制終了される場合は、少し小さく変更してください
4. テストが成功したかどうか
-Xms512M -Xmx512M
次の戻り情報が表示されます:
curl 'http://localhost:9200/?pretty'
は起動が成功したことを示します。
次に、JavaのAPIを使用してElasticsearchを操作しますまず、elasticsearchとlog4jパッケージをインポートします
POM
{ "status": 200, "name": "Shrunken Bones", "version": { "number": "1.4.0", "lucene_version": "4.10" }, "tagline": "You Know, for Search" }
以下は、よく使用されるいくつかの操作です
1 クライアントを作成します<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jk</groupId>
<artifactId>ElasticsearchExample</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<!--用哪个版本就填什么-->
<version>5.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.7</version>
</dependency>
</dependencies>
</project>
Client client = null;
try {
client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
} catch (Exception e) {
e.printStackTrace();
}
データの挿入/**
* 创建索引,有则先删除
* @param client
*/
private static void recreateIndex(Client client) {
if (client.admin().indices().prepareExists(index).execute().actionGet()
.isExists()) {
DeleteIndexResponse deleteIndexResponse = client.admin().indices()
.delete(new DeleteIndexRequest(index)).actionGet();
System.out.println("delete index :");
System.out.println(deleteIndexResponse);
}
CreateIndexResponse createIndexResponse = client.admin().indices()
.prepareCreate(index).execute().actionGet();
System.out.println("create index :");
System.out.println(createIndexResponse);
}
4.
/** * 查询所有 */ private static void searchAll(Client client) { SearchResponse response = client.prepareSearch(index) .setQuery(QueryBuilders.matchAllQuery()) .setExplain(true).execute().actionGet(); System.out.println("searchAll : "); for (SearchHit searchHit : response.getHits()) { System.out.println("********"); System.out.println(searchHit.getSource()); } }6.
りー7並べ替えてください
以上がJava で強力な Elastisearch 検索エンジンを使用するためのコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。