Udostępnij za pośrednictwem


Elasticsearch w aplikacji natywnej dla chmury

Napiwek

Ta zawartość jest fragmentem książki eBook, Architekting Cloud Native .NET Applications for Azure, dostępnej na platformie .NET Docs lub jako bezpłatny plik PDF do pobrania, który można odczytać w trybie offline.

Miniatury natywnych aplikacji platformy .NET w chmurze dla książki eBook platformy Azure.

Elasticsearch to rozproszony system wyszukiwania i analizy, który umożliwia tworzenie złożonych funkcji wyszukiwania w różnych typach danych. Jest to open source i powszechnie popularne. Zastanów się, jak następujące firmy integrują aplikację Elasticsearch z aplikacją:

  • Wikipedia do wyszukiwania pełnotekstowego i przyrostowego (wyszukiwania podczas wpisywania).
  • Usługa GitHub umożliwia indeksowanie i udostępnianie ponad 8 milionów repozytoriów kodu.
  • Platforma Docker umożliwiająca odnajdywanie biblioteki kontenerów.

Elasticsearch jest zbudowany na bazie aparatu wyszukiwania pełnotekstowego Apache Lucene . Lucene zapewnia indeksowanie dokumentów o wysokiej wydajności i wykonywanie zapytań. Indeksuje dane ze schematem indeksowania odwróconego — zamiast mapować strony na słowa kluczowe, mapuje słowa kluczowe na strony, podobnie jak słownik na końcu książki. Lucene ma zaawansowane możliwości składni zapytań i może wykonywać zapytania dotyczące danych za pomocą:

  • Termin (pełne słowo)
  • Prefiks (rozpoczyna się od wyrazu)
  • Symbol wieloznaczny (przy użyciu filtrów "*" lub "?"
  • Fraza (sekwencja tekstu w dokumencie)
  • Wartość logiczna (złożone wyszukiwania łączące zapytania)

Podczas gdy Lucene zapewnia niskopoziomową instalację wodną do wyszukiwania, elasticsearch udostępnia serwer, który znajduje się na szczycie Lucene. Elasticsearch dodaje funkcje wyższego poziomu, aby uprościć pracę Lucene, w tym interfejs API RESTful w celu uzyskania dostępu do indeksowania i wyszukiwania Lucene. Zapewnia również rozproszoną infrastrukturę umożliwiającą ogromną skalowalność, odporność na uszkodzenia i wysoką dostępność.

W przypadku większych aplikacji natywnych dla chmury ze złożonymi wymaganiami dotyczącymi wyszukiwania usługa Elasticsearch jest dostępna jako usługa zarządzana na platformie Azure. Witryna Microsoft Azure Marketplace zawiera wstępnie skonfigurowane szablony, których deweloperzy mogą używać do wdrażania klastra Elasticsearch na platformie Azure.

W witrynie Microsoft Azure Marketplace deweloperzy mogą używać wstępnie skonfigurowanych szablonów utworzonych do szybkiego wdrażania klastra Elasticsearch na platformie Azure. Korzystając z oferty zarządzanej przez platformę Azure, można wdrożyć do 50 węzłów danych, 20 węzłów koordynujących i trzy dedykowane węzły główne.

Podsumowanie

W tym rozdziale przedstawiono szczegółowe spojrzenie na dane w systemach natywnych dla chmury. Zaczęliśmy od kontrastowania magazynu danych w aplikacjach monolitycznych z wzorcami przechowywania danych w systemach natywnych dla chmury. Przyjrzeliśmy się wzorom danych zaimplementowanym w systemach natywnych dla chmury, w tym zapytaniach obejmujących wiele usług, transakcjach rozproszonych i wzorcach do obsługi systemów o dużej ilości. Porównaliśmy język SQL z danymi NoSQL. Przyjrzeliśmy się opcjom magazynu danych dostępnym na platformie Azure, które obejmują opcje zarówno skoncentrowane na firmie Microsoft, jak i open source. Na koniec omówiliśmy buforowanie i usługę Elasticsearch w aplikacji natywnej dla chmury.

Informacje