Domanda

Sto avendo una query di problemi SOLR utilizzando il seguente tipo di campo:

<fieldType name="text_ci" class="solr.TextField" positionIncrementGap="100">
   <analyzer>
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
       <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
   </analyzer>
</fieldType>
.

Come puoi vedere che applica la "snowballporterfilterfactory" durante l'indicizzazione e la loro interrogazione. Se indicizzo qualcosa come

.

roba del mouse e divertimento

Get è indicizzato come:

interruzione indice in solr

Come puoi vedere la parola "mouse" viene trasformata in "mous" dalla "snowballporterfilterfactory". Che è ciò che vogliamo. Tuttavia, quando cerchiamo

.

Mouse *

Non sembra applicare la "snowballporterfilterfactory" allo stesso modo. Immagino a causa del * alla fine.

interruzione della query in solr

La mia domanda è .. C'è un modo per rendere il "snowballporterfilterfactory" conoscere i caratteri jolly? Così quando query per

.

Mouse *

Non ottengo 0 risultati.

Interessante se query per

.

mous *

Il record torna.

o qualcuno può offrire un modo migliore per interrogare / indice questo tipo di campo?

Grazie Dave

Altri suggerimenti

L'ultima volta che controllo, quando si utilizzano i caratteri jolly, non viene utilizzato l'analizzatore di query.Quindi, dal momento che stai usando un livello inferioreCaseFilterFactory, i tuoi termini sono indicizzati in minuscolo e la ricerca di mous * non restituirà nulla.

Penso che l'unica cosa da fare quando si utilizza Wildcards è assicurarsi di adattare la tua query sul modo in cui i tuoi termini sono indicizzati (in un modo simile a ciò che il tuo analizzatore di query farebbe).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top