2012-12-10 124 views
2

我有我的数据库中的关键字列表。例如:Java程序,Php程序等。我使用Lucene为这些关键字编制索引。当我搜索比关键字(索引词)更长的文本时,如何获得匹配?例如:我正在寻找“我的Java程序比你的更好”。我期望一场比赛,因为我已经编制了一个keywod“Java程序”?如何有效地使用Lucene做到这一点?如果不是Lucene,我还有什么可以用来做这种工作的?Lucene反向搜索

请注意,我不想匹配独立关键字“java”和“program”。我想要一个“Java程序”上的匹配(就像我索引的一个关键字一样)。

谢谢。

+0

你可以看看[MemoryIndex](http://lucene.apache.org/core/old_versioned_docs/versions/3_0_0/api/contrib-memory/org/apache/lucene/index/memory/MemoryIndex.html ) –

+0

为什么不使用短语搜索? –

回答

2

如果你有一个StandardAnalyzer索引关键字时,你可以很有效地查询字符串像查询他们这

My Java Program is better than yours. 

其中,除非引用或类似的东西,有效地解释到7个查询(少删除停用词后),所以它会匹配时,寻找“java”,当寻找“程序”。

+0

对不起。我不想单独匹配“Java”和“程序”。我想匹配我索引的确切关键字“Java程序”。谢谢。 – M99

+0

如果你有默认的排序(相关性),那么你的文档被编入“Java程序”的分数将高于例如只有“Java”的文档。完全匹配将会更有效率。 –

+0

我正在寻找一个是或否如果我选择最佳匹配,如何能够检查它是否匹配整个“java程序”与“java”(或)“程序”?谢谢。 – M99