通用源代码的Lucene标记器

通用源代码的Lucene标记器,lucene,tokenize,Lucene,Tokenize,我有一个基于Lucene的程序对源代码文件进行索引,我注意到Lucene的StandardTokenizer不会分割包含点的单词,例如foo.bar。问题是,在源代码中,点通常用于方法调用,在这种情况下,对象名和方法名应该分开 所以,我的问题是,我如何编写一个定制的标记器,它通常与源代码配合良好(例如,没有特定的编程语言)?是否有任何现有的实现?您可以查看有关使用Lucene为源代码编制索引的信息,这已经有几年的历史了,但可以作为指导方针。关于标记器,他们使用的是小写的标记器,似乎可以满足您的需

我有一个基于Lucene的程序对源代码文件进行索引,我注意到Lucene的
StandardTokenizer
不会分割包含点的单词,例如
foo.bar
。问题是,在源代码中,点通常用于方法调用,在这种情况下,对象名和方法名应该分开


所以,我的问题是,我如何编写一个定制的
标记器
,它通常与源代码配合良好(例如,没有特定的编程语言)?是否有任何现有的实现?

您可以查看有关使用Lucene为源代码编制索引的信息,这已经有几年的历史了,但可以作为指导方针。关于标记器,他们使用的是小写的标记器,似乎可以满足您的需要。

您可以查看有关使用Lucene为源代码编制索引的信息,这已经有几年的历史了,但可以作为指导原则。关于标记器,他们使用的小写标记器似乎可以满足您的需要。

您可以将StandardTokenizer的语法(JFlex)更改为按点拆分,并生成自定义标记器。这就是我当时所做的


您还可以使用一个在点上拆分的令牌过滤器,并使用StandardTokenizer和这个新的令牌过滤器创建一个自定义分析器。(请参阅StandardAnalyzer的功能,并在其中插入此新的标记过滤器)。

您可以将StandardTokenizer的语法(JFlex)更改为按点拆分,并生成自定义标记器。这就是我当时所做的

您还可以使用一个在点上拆分的令牌过滤器,并使用StandardTokenizer和这个新的令牌过滤器创建一个自定义分析器。(请参阅StandardAnalyzer的功能,并在其中插入新的令牌过滤器)