Lucene索引

Lucene索引,lucene,Lucene,在我的lucene索引文档中,我有三个字段,即名字、中间名和姓氏。因此,如果进行了搜索,则应在索引中的任何字段中执行搜索。因此,我没有维护两个单独的索引(一个具有完整的上下文,三个字段的串接字符串,如所有索引,另一个具有单独的字段)。我只使用了后一种方法,即,我只维护具有单独字段的索引。因此,如果提交了搜索文本,那么将组合三个单独的术语查询,并使用组合的布尔查询进行搜索。因此,如果搜索文本与任何字段匹配,则将获得搜索结果。现在的问题是,如果搜索文本之间有空格,第一个单词是名字,最后一个单词是中间

在我的lucene索引文档中,我有三个字段,即名字、中间名和姓氏。因此,如果进行了搜索,则应在索引中的任何字段中执行搜索。因此,我没有维护两个单独的索引(一个具有完整的上下文,三个字段的串接字符串,如所有索引,另一个具有单独的字段)。我只使用了后一种方法,即,我只维护具有单独字段的索引。因此,如果提交了搜索文本,那么将组合三个单独的术语查询,并使用组合的布尔查询进行搜索。因此,如果搜索文本与任何字段匹配,则将获得搜索结果。现在的问题是,如果搜索文本之间有空格,第一个单词是名字,最后一个单词是中间名,那么如何使用带有单独字段的索引来完成此搜索。有什么方法可以做到这一点吗?

您不需要维护两个单独的索引。有一个包含四个字段的索引:

  • 名字
  • 中间名
  • 全名(全名作为此字段的一部分编制索引)
  • 让默认搜索字段为全名,如果用户希望进一步缩小范围,他们还可以对名字/中间名/姓氏字段进行查询