Или я неправильно понимаю использование этого класса. Проверьте код ниже ... (Это в Scala, но это должно быть легко понять идею)`FieldValueQuery` является багги
import org.apache.lucene.store._
import org.apache.lucene.document._
import org.apache.lucene.index._
import org.apache.lucene.analysis.core._
import org.apache.lucene.search._
val directory = new RAMDirectory()
val config = new IndexWriterConfig(new WhitespaceAnalyzer())
val writer = new IndexWriter(directory, config)
writer.addDocument({
val document = new Document()
document.add(new StringField("foo", "bar", Field.Store.YES))
document
})
writer.commit()
val searcher = new IndexSearcher(DirectoryReader.open(directory))
{
val query = new ConstantScoreQuery(new FieldValueQuery("foo"))
Console.println(searcher.search(query, 1).totalHits)
}
{
val query = new TermQuery(new Term("foo", "bar"))
Console.println(searcher.search(query, 1).totalHits)
}
выход,
[info] 0
[info] 1
Является ли это ошибка или я пропускаю что-нибудь ? (Я использую Lucene 5.4.1)
Спасибо! Что делать, если я просто хочу искать документы, имеющие конкретное поле? До 5 я использовал 'FieldValueFilter', и он работал как шарм. Теперь в 5 это устарело, мне интересно, что следует использовать вместо этого? – Sheng