2017-03-01 6 views
0

Ich habe Daten aus meiner Datenbank in Solr für Abfragezwecke importiert.Solr Match String beginnend mit

Eine Probe von Daten als unten ...

NAMATJIRA,DRIVE,,WARAMANGA,ACT 
DOUGLAS WATERHOUSE,DRIVE,,DUNLOP,ACT 
WARDELL,DRIVE,,BARDEN RIDGE,NSW 

In solr Admin-Seite, wenn ich die Abfrage

laufen
street_name:wa* AND street_name:drive* 

I, wie oben alle Datensätze erhalten. Gibt es eine Möglichkeit zu filtern, so dass ich nur diejenigen bekomme, die mit WA beginnen?

UPDATE: Hinzugefügt Schemainformationen

<field name="street_name" type="text_general" indexed="true" stored="true"/> 
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="index"> 
     <tokenizer class="solr.KeywordTokenizerFactory"/>  
     <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
     <analyzer type="query"> 
     <tokenizer class="solr.KeywordTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
    </fieldType> 
+0

Zeigen Sie uns Ihr Solr-Schema –

Antwort

1

der Typ Sie es verwenden, um das Feld zu analysieren ist, Zeichenüber dass in mehrere Bedingungen, so

NAMATJIRA,DRIVE,,WARAMANGA,ACT 

wird (ein Feld mehrere Begriffe enthalten, dann es ist wahrscheinlich auch niedriger gehäuse etc)

NAMATJIRA 
DRIVE 
WARAMANGA 
ACT 

Deshalb ist Ihre Abfrage entspricht es , weil einer der Werte mit 'wa' beginnt.

Um dies zu beheben, ändern Sie einfach den Typ Ihres Felds, um KeywordTokenizerFactory zu verwenden, das alles als einen einzelnen Begriff behält.

+0

In KeywordTokenizerFactory geändert (Schemainformationen aktualisiert, siehe ursprüngliche Frage), die Ergebnisse haben sich jedoch nicht geändert. – user2260040

+0

haben Sie neu indiziert? Sie müssen – Persimmonium

+0

Reindexing tat den Trick. Danke vielmals. – user2260040