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

时间:2016-10-12 09:43:51

标签: c# lucene.net querying

假设我有一个包含Users集合的索引,将其全名存储在Name字段中。其中一些用户的格式为"名字姓氏",有些是#34;名字姓氏姓氏"

e.g。

  1. Joe Bloggs
  2. Joe Fred Bloggs
  3. Joe John Paul Bloggs
  4. 如果我搜索" Joe Bloggs",我需要它来返回上面列出的所有用户。

    我尝试过使用PhraseQuery,但这只会让Joe Bloggs' (我认为由于条款需要按照正确的顺序)。

    我唯一的选择是使用WildcardQuery吗?我不想要乔史密斯'或者' John Bloggs'被退回。此外,我无法修改索引以将全名拆分为单独的字段。

    我应该如何最好地形成我的查询以使事情按要求运作?

    谢谢

1 个答案:

答案 0 :(得分:0)

  1. 注意使用哪种分析仪。
  2. 你可能只想要"空白"打破ws的话。加上"小写"所以" fred"匹配"弗雷德"

    1. 您的查询应该只是"名称:joe AND name:bloggs" (或者,如果您手动构建查询对象,则等效)
    2. 这表示名称字段必须包含两个单词