0

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

4

1 回答 1

1

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

  1. 中间名字
  2. 全名(全名作为该字段的一部分编入索引)

让默认搜索字段为全名,如果用户想进一步缩小范围,他们也可以在名字/中间名/姓氏字段上发出查询。

于 2012-08-06T14:23:05.093 回答