2017-06-02 4 views
0

ich das Dokument am Hinzufügen Index Lucene wie folgt:Lucene nicht mit dem Wert der Indizierung String-Feld "this"

Document doc = new Document(); 
String stringObj = (String)field.get(obj); 
doc.add(new TextField(fieldName, stringObj.toLowerCase(), org.apache.lucene.document.Field.Store.YES)); 
indexWriter.addDocument(doc); 

ich eine Wildcard-Suche tue wie folgt:

searchTerm = "*" + searchTerm + "*"; 
term = new Term(field, sTerm.toLowerCase()); 
Query query = new WildcardQuery(term); 
TotalHitCountCollector collector = new TotalHitCountCollector(); 
indexSearcher.search(query, collector); 
if(collector.getTotalHits() > 0){ 
    TopDocs hits = indexSearcher.search(query, collector.getTotalHits()); 
} 

Als ich habe eine Zeichenfolge mit einem "this" -Wert, es wird nicht zum Index hinzugefügt, daher bekomme ich das Ergebnis bei der Suche nach "this" nicht. Ich verwende einen StandardAnalyzer.

+0

"dies" ist ein Stoppwort. – femtoRgon

Antwort

1

Allgemeine Begriffe der englischen Sprache wie Präpositionen, Pronomen usw. werden als Stoppwörter markiert und vor der Indizierung weggelassen. Sie können einen benutzerdefinierten Analysator oder eine benutzerdefinierte Stoppwortliste für Ihren Analysator definieren. Auf diese Weise können Sie Wörter weglassen, die nicht indexiert werden sollen, und die gewünschten Stoppwörter beibehalten.

Verwandte Themen