如何查询Lucene.NET中字段的一部分



假设我有一个包含用户集合的索引,将其全名存储在name字段中。其中一些用户的格式是"Firstname Lastname",而一些是"Firstname midlename (s) Lastname"

  1. Joe Bloggs
  2. Joe Fred Bloggs
  3. Joe John Paul Bloggs

如果我搜索"Joe Bloggs",我需要它返回上面列出的所有用户。

我试过使用PhraseQuery,但这只会返回'Joe Bloggs'(我认为由于术语需要以正确的顺序)。

是我使用通配符查询的唯一选择吗?我不希望"乔·史密斯"或"约翰·布洛格斯"被退回。此外,我无法重新编写索引,将全名拆分为单独的字段。

我应该如何最好地形成我的查询,让事情按要求工作?

谢谢

    请注意使用的分析仪。

你可能只是想用"whitespace"来分隔空格。加上"小写"以便"fred"与"fred"匹配

  • 你的查询应该简单地是"name:joe AND name: blogs "(或者如果你是手动构建你的查询对象)
  • name字段必须包含两个词

    最新更新