我想實現一個文件索引(rougly對應於數據庫行),其中一個字段是一個整數。我將它們添加到索引,如:如何在Lucene 4中搜索int字段?
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);
看來我無法查詢ticket_id
場可言,而id_s
作品就好了。
其中一份文件是(我增加了可讀性空格):
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>>
所以我的int字段存儲,但沒有索引。此查詢按預期工作:id_s:152
,而此人不會返回任何內容:ticket_id:152
。
我在做什麼錯?我如何將這樣的字段添加到索引並使其可搜索?
謝謝你,這個幫了我很多。 – SoluableNonagon
'234'是否表示同一條數據,如果是這樣,我不認爲它有權將它存儲在索引中兩次,一次作爲一個字符串,一次作爲int。 –
'234'與不同的字段('ticket_id'和'id_s')一起存儲。我看不出有什麼問題。從概念上講,這可能是錯誤的,但這個例子的目的僅僅是證明兩種技術都是可能的。 – mindas