Аз съм съвсем нов в Lucene и наскоро се натъкнах на проблем. Имам документ на lucene, който изглежда така:
--- type ---
gene
--- id ---
xla:379474
--- alt_id ---
emb:BC054227
gb:BC054227
ncbi-geneid:379474
ncbi-gi:148230166
rs:NM_001086315
rs:NP_001079784
unigene:Xl.24622
xla:379474
Създадох заявката по-долу, за да извлека този документ. Работи добре за altId = 379474
, но не и за altId = ncbi-geneid:379474
или Xl.24622
. Предположих, че altId трябва да бъде екраниран и опитах String altId = QueryParser.escape(altId)
без успех. Това ли е очакваното поведение на заявката?, пропускам ли нещо?
Query query1 = new TermQuery(new Term("type", "gene"));
Query query2 = new TermQuery(new Term("alt_Id", altId));
BooleanQuery query = new BooleanQuery();
query.add(query1, BooleanClause.Occur.MUST);
query.add(query2, BooleanClause.Occur.MUST);
Между другото, използвам lucene v3.0.