Sto cercando di determinare il modo migliore per indicizzare un documento nella ricerca elastica. Ho un documento, Doc, che ha alcuni campi:Come evitare il comportamento di ricerca tra oggetti con tipi nidificati nella ricerca elastica
Doc
created_at
updated_at
field_a
field_b
Ma Doc avrà anche alcuni campi specifici per i singoli utenti. Ad esempio, field_x avrà valore 'A' per l'utente 1 e field_x avrà valore 'B' per l'utente 2. Per ogni documento, ci sarà un numero molto limitato di utenti (in genere 2, fino a ~ 10). Quando un utente cerca su field_x, deve cercare sul valore che gli appartiene. Ho esplorato i tipi annidati in ES.
Doc
created_at
updated_at
field_x: [{
user: 1
field_x: A
},{
user: 2
field_x: B
}]
Quando l'utente 1 ricerca su field_x per il valore 'A', questo documento dovrebbe risultare in un hit Tuttavia, non dovrebbe farlo quando l'utente 1 cerca il valore 'B'.
Tuttavia, according to the docs:
Uno dei problemi durante l'indicizzazione oggetti interni che si verificano diverse volte in un documento è che “oggetto croce” cerca partita si verificherà
Esiste un modo per evitare questo comportamento con tipi nidificati o dovrei esplorare un altro tipo?
Ulteriori informazioni sull'esecuzione di tali richieste sarebbero molto preziose. Solo leggendo i documenti, ha affermato che le query nidificate non sono troppo diverse in termini di prestazioni rispetto alle query regolari. Se qualcuno ha questa esperienza, mi piacerebbe sentirlo.
Questa è una grande risposta. Esattamente quello che stavo cercando. Grazie per la tua completezza. – Brad
questa è una vecchia risposta, [vedi documentazione] (https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-put-mapping.html) per le versioni successive su come l'URL di mappatura è cambiato in 'http: // localhost: 9200/index/_mapping/type'. –