2011-11-06 30 views
18

Việc sử dụng để sử dụng cả ElasticSearch và cơ sở dữ liệu Nosql được phân tách là gì? Elasticsearch không thể được sử dụng làm cơ sở dữ liệu và lập chỉ mục tìm kiếm?Cơ sở dữ liệu Elasticsearch và NoSql

Trả lời

15

Có, bạn có thể sử dụng ElasticSearch làm nguồn dữ liệu cũng như chỉ mục.

Theo mặc định, mỗi tài liệu bạn gửi cho hệ thống ElasticSearch là chỉ mục và tài liệu gốc cũng được lưu trữ. Điều này có nghĩa là bất cứ khi nào bạn truy vấn ElasticSearch, bạn cũng có thể truy xuất tài liệu JSON gốc mà bạn đã lập chỉ mục.

Nếu bạn có tài liệu lớn và bạn muốn có thể truy xuất lượng dữ liệu nhỏ hơn thì khi bạn có thể sử dụng API ánh xạ để đặt "lưu trữ" thành "có" cho các trường cụ thể và sau đó sử dụng "trường" để lấy ra các trường cụ thể mà bạn có thể muốn.

Trong hệ thống của tôi, tôi có tự động hoàn thành địa chỉ và tôi chỉ tìm nạp trường địa chỉ của thuộc tính. Dưới đây là ví dụ từ hệ thống của tôi:

_search?q=FullAddress:main&fields:FullAddress 

Sau đó, khi người dùng chọn địa chỉ tôi kéo toàn bộ tài liệu JSON (cùng với những người khác).

Lưu ý:

  1. Bạn không thể làm cập nhật như bạn có thể trong SQL (cập nhật tất cả các mặt hàng phù hợp với một truy vấn để tăng một thuộc tính, giả sử)
  2. Bạn có thể, tuy nhiên, thêm một tài liệu mới và thay thế ID hiện có tại ID bạn muốn cập nhật. Tìm kiếm đàn hồi tăng một thuộc tính _version trên mỗi tài liệu mà nhà phát triển có thể sử dụng để thực thi đồng thời lạc quan, nhưng nó không duy trì lịch sử phiên bản riêng biệt của từng tài liệu. Bạn chỉ có thể truy xuất phiên bản tài liệu mới nhất.
+0

Có an toàn khi truy vấn Elasticsearch trực tiếp từ phía máy khách và nếu tôi muốn theo dõi truy vấn trên cơ sở người dùng, tôi sẽ cần triển khai ElasticJ ở phía máy chủ (nodejs) hay không? –

Các vấn đề liên quan