使用Solr实现形态搜索

时间:2018-03-15 20:19:58

标签: solr nlp stanford-nlp opennlp morphological-analysis

我正在尝试使用Solr实现形态搜索。

以下是morpholgical搜索的快速介绍:  这意味着搜索算法在创建搜索索引和搜索所请求的短语时会考虑所有单词的语法形式。

例如,在索引单词child时,系统会将子项和子项添加到索引中。类似的规则适用于动词:为了带来,系统添加带来,带来等等。因此,如果用户搜索短语"孩子带来",系统将显示包含儿童,儿童,携带,带来的所有结果带来等。

以下是我的两个选择:
1)将每个令牌Lematize并在索引时使用它,并在搜索时对查询字符串执行相同操作。 我不想使用这种方法,因为当我开始支持morphpological搜索时,这会使我的索引不一致,因为之前的文档将缺少引理标记。我也不想重新索引。
2)只有在查询时,找到引理的所有变体(例如:带来的引理'带来'带来')并通过我的令牌过滤器生成这些作为附加标记。这将提供形态搜索,而无需索引/重新索引任何内容。

问题:

是否有任何好的Java库可以给我一个引理的变体/变形(或根词。例如:带来的引理'是'带来')?

1 个答案:

答案 0 :(得分:0)

接近您要求的是使用solr同义词词典和同义词过滤器。您可以添加像child这样的基本单词并添加像kid,children,baby这样的变体。 每次编辑字典后都需要重新加载。如果搜索“孩子”,将对每个孩子的变体进行搜索。