2012-05-07 25 views
8

Tôi đang đánh dấu việc sử dụng ElasticSearch hoặc solr cho kết quả tìm kiếm 'bị bỏ tù'. Bằng cách bỏ tù, tôi muốn giữ các bộ dữ liệu riêng biệt cho mục đích bảo mật, v.v.Elasticsearch có tương đương với 'lõi' như trong solr không?

Theo như tôi có thể nói, điều này có thể bằng cách sử dụng cấu hình đa lõi của solr - có cách nào để tách biệt chỉ mục/dữ liệu một cách hiệu quả hay không 'instancing' cách sử dụng ElasticSearch?

Trả lời

7

Trong ElasticSearch, bạn có thể tách dữ liệu bằng cách lập chỉ mục thành các chỉ mục riêng biệt, sau đó giới hạn truy vấn của bạn vào một chỉ mục cụ thể.

Ví dụ, nếu bạn có hai chỉ số, 'foo' và 'bar' chạy:

% curl -XGET http://localhost:9200/_search?q=*:* 

sẽ tìm kiếm toàn bộ cụm, trong khi:

% curl -XGET http://localhost:9200/foo/_search?q=*:* 

sẽ tìm kiếm chỉ là 'foo ' mục lục.

Bạn cũng có thể dữ liệu riêng biệt theo loại, nếu bạn tạo một chỉ số 'test' như sau:

% curl -XPOST http://localhost:9200/test -d '{ 
    "mappings" : { 
     "type1" : { 
      "_source" : { "enabled" : false }, 
      "properties" : { 
       "field1" : { "type" : "string", "index" : "not_analyzed" } 
      } 
     }, 
     "type2" : { 
      "_source" : { "enabled" : false }, 
      "properties" : { 
       "field1" : { "type" : "string", "index" : "not_analyzed" } 
      } 
     } 
    } 
}' 

Bạn có thể tìm kiếm chỉ các văn bản 'type1' bằng cách xác định các loại với truy vấn:

% curl -XGET http://localhost:9200/test/type1/_search?q=*:* 
+0

Vì vậy, nói rằng tôi có nhiều khách hàng; 'loại' có thể là id khách hàng/tổ chức của họ trong ngữ cảnh này? – thinice

+0

@thinice yes, bạn có thể chọn tách riêng từng khách hàng thành một loại. Hoặc, tùy thuộc vào cấu hình và số lượng khách hàng của bạn, bạn có thể chọn tách từng khách hàng thành một chỉ mục riêng biệt. – thnetos

+0

Rực rỡ - cảm ơn :) – thinice

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