Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Lucene添加附加筛选器不会返回任何结果_C#_Search_Lucene_Lucene.net - Fatal编程技术网

C# Lucene添加附加筛选器不会返回任何结果

C# Lucene添加附加筛选器不会返回任何结果,c#,search,lucene,lucene.net,C#,Search,Lucene,Lucene.net,我正在尝试使用布尔查询查询某些结果。但是,查询不会返回任何结果 这是我正在运行的FilterQuery。即使字段foo包含bar,字段foo3包含bar3,这也不会返回任何结果。我已经三次检查了我的字段,以确保这些字段确实存在于索引中 +(foo:bar foo2:bar2) +foo3:bar3 现在,如果我从查询中删除+foo3:bar3,我将正确返回结果。另外,foo3:bar3是通过编程方式添加的,所以我不解析它。下面是一些相关代码 //This code creates the fi

我正在尝试使用布尔查询查询某些结果。但是,查询不会返回任何结果

这是我正在运行的FilterQuery。即使字段foo包含bar,字段foo3包含bar3,这也不会返回任何结果。我已经三次检查了我的字段,以确保这些字段确实存在于索引中

+(foo:bar foo2:bar2) +foo3:bar3
现在,如果我从查询中删除+foo3:bar3,我将正确返回结果。另外,foo3:bar3是通过编程方式添加的,所以我不解析它。下面是一些相关代码

//This code creates the first part of the query.
MultiFieldQueryParser mfqp = new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_29,SearchFields, analyzer);
Query q = mfqp.Parse(query);
BooleanQuery filterquery = new BooleanQuery();
filterquery.Add(q,BooleanClause.Occur.MUST);

//This code creates the second part of the query
Query fq = new TermQuery(new Term("foo3","bar3"));
filterquery.Add(fq, BooleanClause.Occur.MUST);

//Perform the search
ScoreDoc[] hits = isearch.Search(filterquery, null, ResultsToReturn).scoreDocs;

仅供参考,我目前正在设置要分析的字段,向量设置为带有_positions _offset

我从使用TermQuery改为使用QueryParser,这似乎解决了问题

我从使用TermQuery改为使用QueryParser,这似乎解决了这个问题

+foo3:bar3本身是否返回任何文档?如果我修改搜索工作方式,它将返回文档。如果MFQP将术语传递给booleanquery,那么它会工作。但是如果我使用术语查询,它会失败does+foo3:bar3本身返回任何文档?如果我修改搜索工作方式,它会返回文档。如果MFQP将术语传递给booleanquery,那么它会工作。但是如果我使用术语查询,它会失败