2012-05-07 12 views
8

Estoy observando el uso de ElasticSearch o solr para los resultados de búsqueda 'encarcelados'. Encarcelado, quiero mantener separados los conjuntos de datos por razones de seguridad, etc.¿elasticsearch tiene el equivalente de 'núcleos' como en solr?

Por lo que puedo decir, esto es posible mediante la configuración multinúcleo de solr - ¿hay alguna manera de aislar los índices/datos de una manera eficiente? 'instancias' de manera usando ElasticSearch?

Respuesta

7

En ElasticSearch, puede separar los datos indizando en índices separados, y luego limitando su consulta a un índice en particular.

Por ejemplo, si tiene dos índices, 'foo' y funcionamiento 'bar':

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

buscará en toda la agrupación, mientras que:

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

buscará sólo el 'foo 'índice.

También puede separar los datos por tipos, si se crea un índice de 'prueba' con lo siguiente:

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

Puede buscar sólo los documentos de los 'tipo1' especificando el tipo de la consulta:

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

Digamos que tenía varios clientes; un 'tipo' podría ser su ID de cliente/organización en este contexto? – thinice

+0

@thinice Sí, podría elegir separar cada cliente en un tipo. O bien, según su configuración y la cantidad de clientes, puede elegir separar cada cliente en un índice separado. – thnetos

+0

Brillante - gracias :) – thinice

Cuestiones relacionadas