Lucene子串匹配

时间:2015-07-29 14:22:20

标签: lucene

检查String a是否属于Lucene String b的一部分的最佳方式是什么?例如:a = "capital"b = "Berlin is a capital of Germany"。在这种情况下,b包含a并符合要求。

1 个答案:

答案 0 :(得分:1)

我认为您的问题可以被视为某个字段包含某些字词。 在大多数分析仪中,基本的TermQuery应该足以解决您的问题。"柏林是德国的首都"将被分析为" berlin"," capital" "德国"(如果你使用基本停用词)

// code in Scala
new TermQuery(new Term("contents", "capital"))

您也可以使用PhraseQuery来解决您的问题(但是,您的问题不是最适合PhraseQuery的场景)。

val query = new PhraseQuery();
query.add(new Term("contents", "capital"))

Lucene In Action 2nd, 3.4 Lucene的多样化查询介绍了Lucene中使用的各种Query。我建议您阅读,这可能会有所帮助。