フィールドの1つが整数である文書のインデックス(粗くDB行に対応)を実装しようとしています。 id_s
だけで正常に動作しながら、私は全くticket_id
フィールドを照会することはできませんようだ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);
:ように私は、インデックスに追加しています。
ドキュメントの1つです(私は読みやすくするために空白を追加):
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
です。
私は間違っていますか?インデックスにそのようなフィールドを追加して検索可能にするにはどうすればよいですか?
ありがとう、この1つは私を助けてくれました。 – SoluableNonagon
'234'は同じデータを指していますか?そうであれば、インデックスに2回、ストリングとして、そしてintとして1回ストアする権利はないと思います。 –
'234'は異なるフィールド(' ticket_id'と 'id_s')に格納されています。私はこれに間違ったことは何も見ません。概念的にはこれは間違っているかもしれませんが、この例の目的は両方の技術が可能であることを証明することです。 – mindas