Il modo canonico è questo:
fieldName:[* TO *]
Utilizzando un ''
sul lato sinistro come Paige Cook ha suggerito probabilmente funzionerà anche, ma non mi fido tanto quanto faccio quanto sopra. E poiché questo è in un campo Location, probabilmente dovrai farlo contro uno dei due campi effettivi sottostanti rispetto a questo campo composito logico. Iniziano con fieldName
e terminano con una sorta di suffisso numerico; guarda nel Browser Schema per vedere qual è il vero nome.
Una cosa importante da tenere presente è che una query di questo tipo è costosa per Solr, poiché esegue una scansione dell'indice completa su questo campo. Se hai molti valori di campo di posizione distinti (migliaia in su?), Allora questo è un grosso problema. Se lo fai in una query di filtro, verrà memorizzato nella cache ed è forse discutibile. Se si desidera eseguire rapidamente questa query, al momento dell'indice è necessario indicizzare un campo booleano per indicare se esiste o meno un valore in questo campo.
fonte
2012-05-23 18:14:26
Grazie a David, la sintassi [* TO *], combinata con la verifica di entrambi i campi di supporto, sembra funzionare correttamente (ad esempio 'campo_0_coord: [* TO *] AND campo_1_coord: [* TO *]'). Grazie anche per il suggerimento per le prestazioni! – STW
Non devi farlo contro entrambi i campi coord, che è due volte più lento, solo uno. Se uno ha un valore, l'altro lo fa e viceversa. –