So verwenden Sie Java, um eine auf Elasticsearch basierende Echtzeit-Suchanwendung zu entwickeln
Zusammenfassung:
In diesem Artikel wird erläutert, wie Sie mithilfe der Java-Sprache eine auf Elasticsearch basierende Echtzeit-Suchanwendung entwickeln. Durch die Kombination der leistungsstarken Suchmaschinenfunktionen von Elasticsearch mit der Flexibilität und Benutzerfreundlichkeit von Java als Entwicklungssprache können wir ein effizientes und genaues Echtzeit-Suchsystem aufbauen.
Stichwörter: Java, Elasticsearch, Echtzeitsuche, Entwicklung
1 Einführung
Mit dem explosionsartigen Wachstum der Informationen ist die Echtzeitsuche zu einem unverzichtbaren Bestandteil moderner Anwendungen geworden. Elasticsearch ist eine verteilte Open-Source-Such- und Analyse-Engine in Echtzeit, die leistungsstarke Suchfunktionen bietet und Suchanforderungen in verschiedenen Anwendungsszenarien erfüllen kann. In diesem Artikel erfahren Sie, wie Sie mithilfe der Java-Sprache eine auf Elasticsearch basierende Echtzeit-Suchanwendung entwickeln.
2. Vorbereitung
Bevor wir beginnen, müssen wir die folgenden Arbeiten vorbereiten:
3 Sie müssen einen Elasticsearch-Client für die Interaktion mit dem Elasticsearch-Server erstellen. Es kann mit der offiziellen Java-Client-Bibliothek von Elasticsearch oder anderen Bibliotheken von Drittanbietern wie RestHighLevelClient erstellt werden. In diesem Artikel verwenden wir RestHighLevelClient als Beispiele.
RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("localhost", 9200, "http"), new HttpHost("localhost", 9201, "http")));
Bevor wir eine Echtzeitsuche durchführen, müssen wir einen Index erstellen, um unsere Daten zu speichern. Indizes können als Tabellen in einer Datenbank betrachtet werden, die zum Speichern und Organisieren von Daten verwendet werden. Wir können Indizes über den Elasticsearch-Client erstellen.
CreateIndexRequest request = new CreateIndexRequest("my_index"); client.indices().create(request, RequestOptions.DEFAULT);
Beim Hinzufügen von Dokumenten werden Daten im Elasticsearch-Index gespeichert. Wir können ein IndexRequest-Objekt erstellen, Dokumentdaten hinzufügen und dann Indexierungsvorgänge über den Client durchführen.
IndexRequest request = new IndexRequest("my_index") .id("1") .source("name", "John Doe", "age", 25, "email", "john.doe@example.com"); IndexResponse response = client.index(request, RequestOptions.DEFAULT);
Die Verwendung von Elasticsearch für die Echtzeitsuche steht im Mittelpunkt dieses Artikels. Wir können Suchvorgänge durchführen, indem wir ein SearchRequest-Objekt erstellen und entsprechende Suchbedingungen festlegen.
SearchRequest request = new SearchRequest("my_index"); SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name", "John"); sourceBuilder.query(termQueryBuilder); request.source(sourceBuilder); SearchResponse response = client.search(request, RequestOptions.DEFAULT); SearchHits hits = response.getHits();
Sobald wir einen Suchvorgang durchgeführt haben, müssen wir die zurückgegebenen Suchergebnisse verarbeiten. Suchergebnisse werden in Form eines oder mehrerer SearchHit-Objekte zurückgegeben. Jedes SearchHit-Objekt stellt ein Dokument dar, das die Suchkriterien erfüllt.
for(SearchHit hit : hits) { String name = hit.getSourceAsMap().get("name").toString(); int age = Integer.parseInt(hit.getSourceAsMap().get("age").toString()); String email = hit.getSourceAsMap().get("email").toString(); System.out.println("Name: " + name + ", Age: " + age + ", Email: " + email); }
Referenzen:
Das obige ist der detaillierte Inhalt vonWie man mit Java eine Echtzeit-Suchanwendung auf Basis von Elasticsearch entwickelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!