La lingua olandese e tedesca hanno parole che possono essere combinate a nuove parole; parole composte.tokenizer parola composta Solr - risultati trattati come OR statement
Ad esempio "accountmanager" è considerato una parola, composta dalle parole "account" e "manager". I nostri utenti utilizzeranno "accountmanager" e "account manager" in documenti e query e si aspettano gli stessi risultati per entrambe le query.
Per poter decompound (split) parole solr ha un filtro dizionario che ho configurato nello schema:
<filter class="solr.DictionaryCompoundWordTokenFilterFactory" dictionary="../../compound-word-dictionary.txt" minWordSize="8" minSubwordSize="4" maxSubwordSize="15" onlyLongestMatch="true"/>
Il file composto-word-dictionary.txt contiene una lista di parole che sono usati per decomporre parole composte. In questo elenco troverai ad esempio le parole "account" e "manager".
Il risultato decompound è ok, se analizzato nel debugger Solr durante la ricerca con query "accountmanager": (termine testo):
- accountmanager
- conto
- direttore
Questo risultato, tuttavia, viene considerato come un'istruzione OR e trova tutti i documenti che contengono almeno uno dei termini in esso contenuti. Voglio che si comporti come un'istruzione AND (quindi voglio solo i risultati che hanno entrambi i termini "account" e "manager" nel documento).
Ho provato a impostare l'operatore di default nello schema su "AND", ma questo viene ignorato quando si utilizza edismax. Così ho impostato il Min-should-Match proposto al 100% (mm = 100%), di nuovo senza alcun risultato desiderato. La modifica degli attributi del filtro dizionario nello schema non modifica il comportamento in "AND".
Qualcuno si è imbattuto in questo comportamento quando utilizza la parola chiave composta del dizionario e conosce una soluzione che consente di comportarsi come un'istruzione AND?
Grazie per la spiegazione. Risposta chiara del comportamento di DictionaryCompoundWordTokenFilterFactory. Ho interpretato erroneamente il suo uso e vedo ora che non servirà ai miei bisogni in questo caso. Il suggerimento suggerito è in realtà il mio prossimo passo (usando solr.SynonymFilterFactory). Speravo di semplificare il filtro dei sinonimi in combinazione con la fabbrica di filtri a parola composta. –