Ich versuche, einen Index von Dokumenten zu implementieren (ähnlich wie DB-Zeilen), wobei eines der Felder eine Ganzzahl ist. Ich füge sie zu indizieren wie:Wie ein Int-Feld in Lucene 4 zu suchen?
Document doc = new Document();
doc.add(new StringField("ticket_number", rs.getString("ticket_number"),
Field.Store.YES));
doc.add(new IntField("ticket_id", rs.getInt("ticket_id"),
Field.Store.YES));
doc.add(new StringField("id_s", rs.getString("ticket_id"),
Field.Store.YES));
w.addDocument(doc);
Es scheint, dass ich nicht das ticket_id
Feld überhaupt abfragen können, während id_s
funktioniert gut.
Eines der Dokumente ist (habe ich Leerzeichen zur besseren Lesbarkeit):
Document<
stored,indexed,tokenized,omitNorms,indexOptions=DOCS_ONLY<ticket_number:230114W>
stored<ticket_id:152>
stored,indexed,tokenized,omitNorms,indexOptions=DOCS_ONLY<id_s:152>>
So ist mein int Feld gespeichert, aber nicht indiziert. Diese Abfrage funktioniert wie erwartet: id_s:152
, während dieser nie zurückgibt: ticket_id:152
.
Was mache ich falsch? Wie kann ich ein solches Feld zum Index hinzufügen und durchsuchbar machen?
Danke Mann, dieser hat mir sehr geholfen. – SoluableNonagon
Gibt '234' das gleiche Stück Daten an, wenn nicht, halte ich es nicht für richtig, es zweimal im Index zu speichern, einmal als String und einmal als Int. –
'234' wird mit verschiedenen Feldern gespeichert (' ticket_id' und 'id_s'). Ich sehe damit nichts falsch. Konzeptionell mag das falsch sein, aber der Zweck dieses Beispiels ist nur zu beweisen, dass beide Techniken möglich sind. – mindas