什么是文本和源代码的优秀Lucene分析器?

时间:2012-07-27 02:08:03

标签: html search lucene

什么是一个好的Lucene分析器用于混合文本和不同源代码的文档?

例如,我希望将“C”和“C ++”视为不同的单词,并且我希望Charset.forName("utf-8")在类名和方法名之间分开,并且要将参数视为一个或两个字。

我想要了解的一个很好的示例数据集是StackOverflow本身。我相信StackOverflow使用Lucene.NET进行搜索;它是使用库存分析仪,还是经过大量定制?

1 个答案:

答案 0 :(得分:0)

您可能最好使用WhitespaceTokenizer并对其进行自定义以去除标点符号。例如,除了'+',' - '之外我们删除所有的截断,以便保留诸如C ++等等的单词,但是留下开始和结束引号和括号等。实际上,对于类似这样的事情,您可能必须使用不同的标记器两次添加文档以捕获文档的不同部分。即,一次使用StandardTokenizer,一次使用WhitespaceTokenizer,在这种情况下,StandardTokenizer将拆分您的所有代码,例如在类和方法名称之间作为Whitespace,将获取诸如C ++之类的单词。显然,它取决于语言,例如Scala允许在方法名称中使用一些标点字符。