在Sitecore lucene搜索中,我正在使用"术语查询"从sitecore过滤数据。 在这里,我在Sitecore中有一个名为"描述"我想根据术语" Lorem"进行归档。但每次我得到0结果。如果我不使用rterm查询我得到所有结果,这意味着我的索引配置是正确的。请帮忙。
TermQuery bothQuery = new TermQuery (new Term("Description", "Lorem"));
BooleanQuery query = new BooleanQuery();
query.Add(bothQuery, BooleanClause.Occur.MUST);
TopDocs topDocs = sc.Searcher.Search(query, int.MaxValue);
SearchHits searchHits = new SearchHits(topDocs, sc.Searcher.GetIndexReader());
return searchHits.FetchResults(0, int.MaxValue).Select(r => r.GetObject<Item>()).ToList();
答案 0 :(得分:0)
我注意到上面的术语定义有一个包含大写字母的字段名称。您没有指定您正在使用的Sitecore / Lucene版本,但我对6.x系列Sitecore的体验是索引过程会在索引时将所有Field名称转换为小写。< / p>
因此,您可以调用Sitecore中的字段&#34;描述&#34;但在Lucene的索引中,它可能被称为&#34; description&#34;。尝试更改代码以使用小写字段名称。
您可以使用Lucene Index Viewer from the Sitecore Marketplace等索引显示工具进行检查。它将显示索引中字段的名称,并允许您针对它们测试查询,而无需重新编译代码。