2012-05-07 9 views
8

Sto osservando l'uso di ElasticSearch o solr per i risultati di ricerca 'jailed'. In carcere voglio tenere separati i dati per motivi di sicurezza, ecc.Elasticsearch ha l'equivalente di 'core' come in solr?

Per quanto posso dire, questo è possibile utilizzando la configurazione multi core di solr - esiste un modo per isolare indici/dati in modo efficiente modo 'istanziato' usando ElasticSearch?

risposta

7

In ElasticSearch, è possibile separare i dati mediante l'indicizzazione in indici separati, quindi limitare la query a un indice particolare.

Ad esempio, se si dispone di due indici, 'foo' e 'bar' di esercizio:

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

cercherà l'intero cluster, mentre:

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

cercherà solo il 'foo 'indice.

È inoltre possibile dati separati per tipo, se si crea un indice 'test' con il seguente:

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

puoi solo cercare documenti i 'tipo1' specificando il tipo con la query:

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

Quindi direi che avevo più clienti; un 'tipo' potrebbe essere il loro cliente/org id in questo contesto? – thinice

+0

@thinice sì, puoi scegliere di separare ogni cliente in un tipo. In alternativa, in base alla configurazione e al numero di clienti, è possibile scegliere di separare ciascun cliente in un indice separato. – thnetos

+0

Brillante - grazie :) – thinice

Problemi correlati