2015-09-25 28 views
1

采取这种结构,例如:如何为lucene.net中的这些标签建立索引标签和查询完全匹配?

名称:约翰

爱好:跳舞,潜水,骑马回骑,高空跳伞

名称:简

爱好:摩托车赛车,跳伞,跳舞

我对索引和查询此信息感兴趣。重要的是,查询需要对抗爱好的精确匹配:

所以,搜索“跳伞”应该返回回两约翰

搜索“潜水”应返回0结果,因为没有找到完全匹配。

什么是理想的索引和查询方法,我应该采取正确的索引爱好?

+2

将它们作为多个值添加到相同的字段。在加载之前解析它们。 – Paparazzi

+0

谢谢@弗里斯比,这就是诀窍! – gottalovedotnet

回答

1

将它们作为多个值添加到相同的字段。在加载之前解析它们。

1

它已经有一段时间,因为我已经与Lucene工作,但假设正是如何爱好存储(逗号+空格分隔),在索引上你会使用模式分析器以下模式“,\ s *“,并且在查询中,我认为不需要任何标记化,您可以按原样传递该字段的查询。

这当然是最简单的情况。如果你想开始处理边缘情况(外壳,令牌中的空间),你将不得不采取一种非常不同的方法。