SSV
+1

Tìm hiểu về Elasticsearch phần 2

Tiếp nối phần trước mình đã giới thiệu về Elasticsearch, cách thức hoạt động của Elastic search. Phần này mình sẽ giới thiệu về cách cách cài đặt Elastic search trong ubuntu và cách sử dụng một số câu truy vấn của Elastic search.

I. Cách cài đặt.

Để cài đặt được Elastic search thì mày bạn cần phải có java(Elastic search chỉ hỗi trợ với openjdk-7-jre trở lên). Kiểm tra máy bạn có cài đặt java hay chưa sử dụng lệnh.

java -version

Tiếp theo bạn download Elastic search về rồi cài đặt theo link sau. https://www.elastic.co/downloads

Nếu bạn không muốn dùng command line thì bạn có thể download bản deb về rồi và mở file lên cài đặt bình thường.

Để khởi động, tắt, restart elasticsearch ta có thể dùng

sudo service elasticsearch start | stop | restart

hoặc dùng:

/etc/init.d/elasticsearch start | stop | restart

Mặc định elasticsearch sẽ dùng cổng 9200.

Sau khi cài đặt và khởi động xong từ bây giờ ta có thể dùng elasticsearch. Một đặc điểm nữa là Elasticsearch còn cung cấp API cho chúng ta sử dụng với full REST HTTP với các method GET, POST, PUT, DELETE.

Ta có thể dùng API để tạo index (vùng sẽ lưu trữ dữ liệu để search) bằng lệnh:

curl -XPOST "http://localhost:9200/search" -d '{
    "settings": {
         "index": {
           "mapping.allow_type_wrapper": true
         }
     }
}'

Theo ví dụ trên thì “search” chính là tên index chúng ta dùng để lưu trữ dữ liệu cần search mà search có settings index là “mapping.allow_type_wrapper”: true chính là việc cho phép sử dụng JSON mappers.

Để xóa vùng index ta dùng lệnh:

curl -XDELETE "http://localhost:9200/search"

Lệnh cơ bản để xem lại settings của index đã cài đặt

curl -XGET "http://localhost:9200/search/_settings"

Hay là có thể update lại settings hoặc là PUT data vào vùng index:

curl -XPUT "http://localhost:9200/search/stock/1" -d '{
   "user": "User 1",
   "title": "Test search",
   "message": "Message search"
}'

Kết quả trả về là:

{
   "_index": "search",
   "_type":"stock",
   "_id": "1",
   "_version": 1,
   "created": true
}

Bạn có thể tham khảo thêm tại.

http://www.elasticsearch.org/

II. Một số câu truy vấn của Elastic search.

Match query

Tìm kiếm bằng.

{
    "match" : {
        "id" : "1"
    }
}

{
    "term" : {
        "id" : "1"
    }
}

Cả hai trường hợp match query và term query là tương đương nhau.

String query

là cách truy vấn một phần nhỏ trong chuỗi

{
    "match" : {
        "message" : {
            "query" : "pre",
            "type" : "phrase_prefix"
        }
    }
}

Query này có thể tìm được các từ có prefix trong query

{
    "wildcard" : { "name" : "D*y" }
}

Sử dụng cách này có thể query cùng với các kí tự thay thế đặc biệt trong linux như kí tự '*' dùng để thay thế cho một xâu con bất kì, kí tự '?' để thay thế cho một kí tự bất kì, hoặc truy vấn bằng regular expression.

{
    "query_string" : {
        "default_field" : "content",
        "query" : "this AND that OR thus"
    }
}

Hàm query_string cho phép sử dụng các biểu thức logic AND/OR vào trong câu truy vấn.

Các link tham khảo https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html


All Rights Reserved