Cách thiết lập CouchDB với ElasticSearch trên VPS Ubuntu 13.10
CouchDB là một database NoSQL lưu trữ dữ liệu dưới dạng tài liệu JSON. Nó cực kỳ hữu ích trong các tình huống mà schemas sẽ gây đau đầu và cần có một mô hình dữ liệu linh hoạt. CouchDB cũng hỗ trợ sao chép liên tục master-master, nghĩa là dữ liệu có thể được sao chép liên tục giữa hai database mà không cần phải cài đặt một hệ thống phức tạp gồm database chủ và tớ.CouchDB
Tìm kiếm elastic
ElasticSearch là một công cụ tìm kiếm toàn văn bản lập index mọi thứ và giúp mọi thứ có thể tìm kiếm được. Điều này hoạt động cực kỳ hiệu quả với CouchDB vì một trong những hạn chế của CouchDB là đối với tất cả các truy vấn, bạn phải biết ID tài liệu hoặc bạn phải sử dụng bản đồ / thu nhỏ.
Cài đặt CouchDB
Ta sẽ cài đặt CouchDB từ nguồn để có được version mới nhất. Hướng dẫn kỹ hơn về điều này có thể được xem tại đây .
Cài đặt Môi trường
Cập nhật trình quản lý gói:
apt-get update
Cài đặt các công cụ để biên dịch đi văng:
apt-get install -y build-essential
Cài đặt Erlang, ngôn ngữ lập trình CouchDB được viết bằng:
apt-get install -y erlang-base erlang-dev erlang-nox erlang-eunit
Cài đặt phần còn lại của các thư viện mà CouchDB cần:
apt-get install -y libmozjs185-dev libicu-dev libcurl4-gnutls-dev libtool
Yêu cầu các file nguồn
Chuyển đến folder chứa các file nguồn CouchDB:
cd /usr/local/src
Lấy các file nguồn:
curl -O http://apache.mirrors.tds.net/couchdb/source/1.5.0/apache-couchdb-1.5.0.tar.gz
Bỏ theo dõi các file nguồn:
tar xvzf apache-couchdb-1.5.0.tar.gz
Đi tới folder mới:
cd apache-couchdb-1.5.0
Cấu hình nguồn và cài đặt nó:
./configure make && make install
Lưu ý: Bước này có thể mất một lúc. Sau khi hoàn tất, CouchDB sẽ được cài đặt đầy đủ. Bây giờ ta cần tạo user thích hợp và chỉ định quyền
Hoàn thiện cài đặt CouchDB
Tạo user CouchDB:
adduser --disabled-login --disabled-password --no-create-home couchdb
Lưu ý: Có thể bỏ qua dấu nhắc yêu cầu những thứ như Tên nếu bạn muốn. Bạn có thể sử dụng các giá trị mặc định cho mỗi giá trị.
Gán các quyền thích hợp cho user CouchDB:
chown -R couchdb:couchdb /usr/local/var/log/couchdb /usr/local/var/lib/couchdb /usr/local/var/run/couchdb
Cài đặt CouchDB như một dịch vụ để nó không phải khởi động theo cách thủ công:
ln -s /usr/local/etc/init.d/couchdb /etc/init.d update-rc.d couchdb defaults
Khởi động CouchDB:
service couchdb start
Xác minh CouchDB đang chạy
curl localhost:5984
Bạn sẽ thấy một phản hồi bắt đầu bằng:
{"couchdb":"Welcome"...
Cài đặt ElasticSearch
Cài đặt ban đầu
Cài đặt version mới nhất của open-jdk không đầu:
apt-get install openjdk-7-jre-headless
Tải version mới nhất của ElasticSearch:
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.8.deb
Cài đặt gói:
dpkg -i elasticsearch-0.90.8.deb
Trước khi tiếp tục, bạn cần cấu hình Elasticsearch để nó không thể truy cập vào Internet công cộng – Elasticsearch không có bảo mật tích hợp và có thể được kiểm soát bởi bất kỳ ai có thể truy cập API HTTP. Điều này có thể được thực hiện bằng cách chỉnh elasticsearch.yml
. Giả sử bạn đã cài đặt gói, hãy mở cấu hình bằng lệnh sau:
sudo vi /etc/elasticsearch/elasticsearch.yml
Sau đó tìm dòng chỉ định network.bind_host
, sau đó bỏ ghi chú và thay đổi giá trị thành localhost
để nó trông giống như sau:
network.bind_host: localhost
Sau đó, chèn dòng sau vào đâu đó trong file , để tắt các tập lệnh động:
script.disable_dynamic: true
Lưu và thoát. Bây giờ khởi động lại Elasticsearch để thay đổi có hiệu lực:
sudo service elasticsearch restart
Xác minh ElasticSearch đang chạy (Nếu yêu cầu không thành công lần đầu tiên, hãy thử lại. Có thể mất một chút thời gian để nó bắt đầu):
curl http://127.0.0.1:9200
Bạn sẽ thấy một phản hồi bắt đầu bằng:
{ "ok" : true, "status" : 200,
Thay đổi nơi chỉ số cửa hàng của ElasticSearch
Dừng elastic Tìm kiếm:
/etc/init.d/elasticsearch stop
Tạo folder mới:
mkdir /var/data/ mkdir /var/data/elasticsearch
Thay đổi quyền sở hữu folder thành user 'asticsearch ':
chown elasticsearch /var/data/elasticsearch
Thay đổi group :
chgrp elasticsearch /var/data/elasticsearch
Thay đổi file cấu hình ElasticSearch để phản ánh folder dữ liệu mới
Sử dụng nano để mở file cấu hình ElasticSearch:
nano /etc/default/elasticsearch
Thay đổi dòng chứa:
DATA_DIR=
đến
DATA_DIR= /var/data/elasticsearch
Lưu và đóng file .
Làm cho cả hai làm việc cùng nhau
Cài đặt Plugin CouchDB River cho ElasticSearch
Điều hướng đến folder ElasticSearch:
cd /usr/share/elasticsearch/
Cài đặt plugin:
./bin/plugin -install elasticsearch/elasticsearch-river-couchdb/1.2.0
Bắt đầu backup ElasticSearch
Bắt đầu Tìm kiếm elastic :
/etc/init.d/elasticsearch start
Tạo Database CouchDB và Chỉ mục Tìm kiếm elastic
Đặt một số nội dung vào CouchDB
Tạo database CouchDB:
curl -X PUT http://127.0.0.1:5984/testdb
Tạo một số tài liệu thử nghiệm:
curl -X PUT 'http://127.0.0.1:5984/testdb/1' -d '{"name":"My Name 1"}' curl -X PUT 'http://127.0.0.1:5984/testdb/2' -d '{"name":"My Name 2"}' curl -X PUT 'http://127.0.0.1:5984/testdb/3' -d '{"name":"My Name 3"}' curl -X PUT 'http://127.0.0.1:5984/testdb/4' -d '{"name":"My Name 4"}'
Cài đặt ElasticSearch với Database
Tạo index :
curl -X PUT '127.0.0.1:9200/_river/testdb/_meta' -d '{ "type" : "couchdb", "couchdb" : { "host" : "localhost", "port" : 5984, "db" : "testdb", "filter" : null }, "index" : { "index" : "testdb", "type" : "testdb", "bulk_size" : "100", "bulk_timeout" : "10ms" } }'
Kiểm tra nó!
Thực hiện một truy vấn thử nghiệm với ElasticSearch:
curl http://127.0.0.1:9200/testdb/testdb/_search?pretty=true
Bạn sẽ thấy một cái gì đó tương tự như sau:
{ "took" : 4, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 4, "max_score" : 1.0, "hits" : [ { "_index" : "testdb", "_type" : "testdb", "_id" : "4", "_score" : 1.0, "_source" : {"_rev":"1-7e9376fc8bfa6b8c8788b0f408154584","_id":"4","name":"My Name 4"} }, { "_index" : "testdb", "_type" : "testdb", "_id" : "1", "_score" : 1.0, "_source" : {"_rev":"1-87386bd54c821354a93cf62add449d31","_id":"1","name":"My Name"} }, { "_index" : "testdb", "_type" : "testdb", "_id" : "2", "_score" : 1.0, "_source" : {"_rev":"1-194582c1e02d84ae36e59f568a459633","_id":"2","name":"My Name 2"} }, { "_index" : "testdb", "_type" : "testdb", "_id" : "3", "_score" : 1.0, "_source" : {"_rev":"1-62a53c50e7df02ec22973fc802fb9fc0","_id":"3","name":"My Name 3"} } ] } }
Như vậy, thay vì bị giới hạn trong việc sử dụng bản đồ / thu nhỏ hoặc _id của mỗi tài liệu, bạn có thể thực hiện các truy vấn toàn văn trên dữ liệu của bạn bằng cách sử dụng ElasticSearch.
<div class = “author”> Được gửi bởi: <a href=p>http://blog.opendev.ioosystem> Cooper Thompson </a> </div>
Các tin liên quan
Cách sử dụng Celery với RabbitMQ để xếp hàng các tác vụ trên Ubuntu VPS2013-12-19
Cách thiết lập một Honeypot Pháo binh trên VPS Ubuntu
2013-12-04
Cách triển khai Bộ sao chép trong MongoDB trên VPS Ubuntu
2013-12-03
Cách tạo một cụm Sharded trong MongoDB bằng VPS Ubuntu 12.04
2013-12-02
Cách sử dụng ApacheBench để thực hiện kiểm tra tải trên VPS Ubuntu 13.10
2013-11-25
Cách cài đặt control panel Ajenti trên Ubuntu 13.04
2013-11-12
Cách thiết lập và cài đặt Django CMS trên VPS Debian 7 hoặc Ubuntu 13
2013-11-12
Cách cài đặt Dropplets trên Ubuntu 13.04 NGINX VPS
2013-10-25
Cách sử dụng HAProxy để thiết lập cân bằng tải HTTP trên VPS Ubuntu
2013-09-26
Cách tạo Omega 4 Drupal Subtheme trên Ubuntu VPS
2013-09-26