2012-01-25 15 views
5

Ho implementato il componente Solr SpellCheck in base al documento da http://wiki.apache.org/solr/SpellCheckComponent, funziona correttamente. Ma sto cercando di filtrare il risultato del controllo ortografico in base ad altri filtri. Si consideri il seguente schemaSolr Spell Verifica query filtro risultato risultato

product_name 
product_text 
product_category 
product_spell -> copy string from product_name and product_text . And tokenized using white space analyzer 

per lo schema di cui sopra, sto cercando di filtrare il risultato del controllo ortografico fornito in base a categoria. Ho provato a interrogare come http://127.0.0.1:8080/solr/colr1/myspellcheck/?q=product_category:160%20appl&spellcheck=true&spellcheck.extendedResults=true&spellcheck.collate=true. I risultati del controllo ortografico non vengono considerati product_category: 160

Forse perché il dizionario è stato creato per tutte le categorie? In caso affermativo è una buona idea creare il dizionario per ogni categoria?

Non è possibile avere un'altra condizione di filtro nel componente controllo ortografico?

Sto usando solr 3,5

risposta

6

ho già capito dalla questione SOLR-2010 che filtra attraverso il parametro fq dovrebbe essere possibile utilizzare le regole di confronto, ma non lo è, credo ho frainteso.

In effetti, lo SpellCheckComponent ha molto probabilmente un indice separato, ad eccezione dell'implementazione DirectoSolrSpellChecker. Significa che il campo selezionato viene indicizzato in un indice diverso, che contiene solo le informazioni su quel campo specifico che hai scelto per apportare correzioni ortografiche.

Se sei curioso, puoi anche dare un'occhiata all'aspetto dell'indice aggiuntivo usando luke, poiché è ovviamente un indice di lucene. Sfortunatamente il filtraggio con altri campi non è un'opzione, semplicemente perché lì c'è solo un campo, quello che usi per fare le correzioni ortografiche.

+0

Esattamente !!! Mi sento lo stesso. –

+0

Ho scritto sulla mailing list solr-user per essere sicuro, ma non ho ancora avuto una risposta. Ad ogni modo, ho dato un'occhiata al codice, il parametro 'fq' non è nemmeno stato letto, e ho dato un'occhiata all'indice con luke: non contiene abbastanza informazioni per creare filtri. – javanna

+0

sì secondo l'indice, il nostro risultato è corretto. per favore fatemi sapere se avete una risposta dalla mailing list di solr-user –

Problemi correlati