Elasticsearch (phần mềm)

**Elasticsearch** là một công cụ tìm kiếm dựa trên phần mềm Lucene. Nó cung cấp một bộ máy tìm kiếm dạng phân tán, có đầy đủ công cụ với một giao diện web HTTP có hỗ trợ dữ liệu JSON. Elasticsearch được phát triển bằng Java và được phát hành dạng nguồn mở theo giấy phép Apache. Elasticsearch là một công cụ tìm kiếm phổ biến nhất, theo sau là Apache Solr, cũng dựa trên Lucene.

## Lịch sử
Shay Banon tạo ra phần mềm tiền thân của Elasticsearch, được gọi là Compass, trong năm 2004. Trong khi suy nghĩ về phiên bản thứ ba của Compass, ông nhận ra rằng cần thiết phải viết lại phần lớn Compass để "tạo ra một giải pháp tìm kiếm có khả năng mở rộng". Vì vậy, ông đã tạo ra "một giải pháp được xây dựng trên nguyên lý phân tán" và sử dụng các giao thức phổ biến là JSON và HTTP, thích hợp cho các ngôn ngữ lập trình khác, cũng như Java. Shay Banon phát hành phiên bản đầu tiên của Elasticsearch vào tháng hai, năm 2010.Công ty Elasticsearch BV được thành lập vào năm 2012 để cung cấp dịch vụ thương mại và sản phẩm xung quanh phần mềm Elasticsearch và các phần mềm liên quan. Trong tháng 6 năm 2014, công ty thông báo tăng 70 triệu USD trong một vòng tài trợ Loạt C, chỉ 18 tháng sau khi thành lập công ty. Vòng tài trợ đã được dẫn dắt bởi New Enterprise Associates (NEA). Các nhà tài trợ bao gồm Benchmark Capital và Index Ventures. Vòng này mang đến tổng số kinh phí hơn 104 triệu đô.

Vào tháng năm 2015, công ty Elasticsearch đổi tên thành Elastic.

## Tổng quan
Elasticsearch có thể được sử dụng để tìm kiếm tất cả các loại tài liệu. Nó cung có khả năng mở rộng tìm kiếm, gần như tìm kiếm thời gian thực và hỗ trợ multitenancy. Elasticsearch được phân tán, có nghĩa là nó thể được chia thành mảnh (shard) và từng mảnh có thể không có nhiều bản sao (replica)... Mỗi nút (node) chứa một hoặc nhiều mảnh, và hoạt động như một điều phối viên để quản lý hoạt động chính xác của các mảnh. Tái cân bằng (rebalancing) và định tuyến (routing) được thực hiện tự động [...]".

Elasticsearch sử dụng Lucene và cố gắng làm mọi tính năng có sẵn của Lucene có thể dùng lại thông qua JSON và Java API. Nó hỗ trợ facetting và percolating, có thể có ích cho thông báo nếu tài liệu mới phù hợp cho truy vấn đăng ký.

Một tính năng khác được gọi là "cổng" (gateway) và xử lý các chỉ số (index) lâu dài kiên trì, ví dụ, một index có thể phục hồi được từ các cổng trong trường hợp tai nạn ở máy chủ. Elasticsearch hỗ trợ yêu cầu GET thời gian thực, làm cho nó như một kho dữ liệu dạng NoSQL, nhưng nó thiếu giao dịch phân tán.

## Người sử dụng
Người dùng đáng chú ý sử dụng Elasticsearch bao gồm :
* Wikimedia 
* athenahealth 
* Adobe Systems 
* Facebook
* StumbleUpon Mozilla,
* Amadeus IT Group
* Quora
* Foursquare
* Etsy 
* SoundCloud
* GitHub
* FDA
* CERN
* Stack Exchange 
* Center for Open Science 
* Reverb
* Netflix
* Pixabay 
* Motili
* Sophos
* Slurm Workload Manager

## Quản lý Dịch vụ
Một số tổ chức cung cấp Elasticsearch như một dịch vụ quản lý, bao gồm cả Amazon Web Services Elasticsearch Service, Bonsai Elastic Cloud, Qbox và Searchly. Các dịch vụ này cung cấp khả năng lưu trữ, triển khai, sao lưu và hỗ trợ khác như một gói, giảm các kỹ năng và thời gian cần thiết để thực hiện và quản lý Elasticsearch. Đa số dịch vụ quản lý cũng bao gồm cả phần mềm Kibana để quản lý giao diện dạng biểu đồ.

## Tham khảo