我想做一些基本的希伯来词干。
我可以找到的所有自定义分析器示例都会合并其他分析器和过滤器,但不会自行进行任何字符串级别的处理。
如果我想为流中的每个术语创建一个分析器,可以通过以下规则发出一个或两个术语,我该怎么办? 如果传入的术语以其他任何东西开头,则“a”应该按原样传递。 如果传入的术语以“a”开头,那么应该设置两个术语:原始术语和第二个术语,不带前导“a”且具有较低的提升。
因此,如果文件有“帮助”,它将返回“帮助”,“离开”和“方式^ 0.8”。
我应该覆盖分析仪的哪些方法来执行此操作? (指向类似性质示例的指针将非常有用)。
由于
答案 0 :(得分:1)
简要扫描代码,它似乎应该在同一位置(同义词)发出额外的令牌。它通过重写incrementToken()来实现这一点,你必须为你的问题做一些事情(维护一堆下一个令牌,逐个返回)。
如果此示例不起作用,只需尝试找一个解释如何使用Lucene实现同义词过滤器的示例,它几乎与您的问题完全相同。 Lucene in Action 一书有一个很好的例子,代码可以在这里找到:http://www.manning.com/hatcher3/LIAsourcecode.zip,类SynonymFilter
。