2012-05-07 15 views
8

'Hapsedilmiş' arama sonuçları için ElasticSearch veya solr kullanımını gözetliyorum. Hapsederek, güvenlik amaçları için veri kümelerini ayrı tutmak istiyorum.Elasticsearch, solr gibi 'çekirdek' eşdeğerine sahip mi?

Anlayabildiğim kadarıyla bu, solr'un çoklu çekirdek konfigürasyonunun kullanılmasıyla mümkündür - indeksleri/verileri verimli bir şekilde izole etmenin bir yolu var mı ElasticSearch kullanarak 'instancing' bir şekilde?

cevap

7

ElasticSearch'te, verileri ayrı dizinlere ayırarak ayırabilir, ardından sorgunuzu belirli bir dizine sınırlayabilirsiniz. İki endeks, 'foo' ve 'bar' koşu varsa

Örneğin,:

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

sadece 'foo arayacaktır: iken

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

, tüm küme arayacaktır 'endeksi.

yapabilirsiniz türlerine göre de ayrı bir veri, sizinle 'test' bir dizin oluşturursanız aşağıdaki:

% 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" } 
      } 
     } 
    } 
}' 

Sen sorgu ile türünü belirterek sadece 'TYPE1' belgeleri arayabilirsiniz:

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

Pek çok müşterim olduğunu söyle; Bir 'tip' bu bağlamda müşteri/kuruluş kimliği olabilir mi? – thinice

+0

@thinice evet, her müşteriyi bir türe ayırmayı seçebilirsiniz. Veya, yapılandırmanıza ve müşteri sayısına bağlı olarak, her müşteriyi ayrı bir dizine ayırmayı seçebilirsiniz. – thnetos

+0

Brilliant - thanks :) – thinice