C# 使用GetFieldQuery的Lucene查询未返回结果?

C# 使用GetFieldQuery的Lucene查询未返回结果?,c#,lucene,lucene.net,C#,Lucene,Lucene.net,我不确定这为什么不能收回文档: 正在添加的文档: Lucene.Net中的查询: 正在传递给Lucene的查询: query.query={+contact.emailaddress:dan*+project.id:123456} 如果我删除parser.GetFieldQuery,它会工作得很好。当我实际查看索引文件时,有一个条目以project.id和一个以dan开头 我是否应该采取其他措施来按project.id划分搜索范围?我最终改变了Lucene存储project.id的方式: doc

我不确定这为什么不能收回文档:

正在添加的文档:

Lucene.Net中的查询:

正在传递给Lucene的查询: query.query={+contact.emailaddress:dan*+project.id:123456}

如果我删除parser.GetFieldQuery,它会工作得很好。当我实际查看索引文件时,有一个条目以project.id和一个以dan开头


我是否应该采取其他措施来按project.id划分搜索范围?

我最终改变了Lucene存储project.id的方式:

document.Add(new Field("project.id", projectId.ToString(), Field.Store.NO, Field.Index.ANALYZED));
var prefix = "dan";
var fields = new {"contact.emailaddress"};
var filterFields = new Dictionary<string,string>();
filterFields.add("project.id","123456");

var parser = new MultiFieldQueryParser(Version.LUCENE_29, fields, new KeywordAnalyzer());

 var query = new BooleanQuery();
               query.Add(parser.Parse(prefix + "*"), BooleanClause.Occur.MUST);

               if (filterFields != null)
               {
                   foreach (var field in filterFields)
                   {
                       query.Add(parser.GetFieldQuery(field.Key, field.Value), BooleanClause.Occur.MUST);

                   }
               }
document.Add(new Field("project.id", projectId.ToString(), Field.Store.NO, Field.Index.ANALYZED));