我已在 Sitecore 8.1 中切换到 SOLR 搜索,一切正常(索引正常重建)。但是,当我使用SearchContext
搜索项目时,根据item.Path.Contains("")
进行过滤后,我没有得到任何结果,尽管它使用 Lucene 。如果我删除item.Path.Contains("")
,我会得到结果。那么,为什么它不起作用?
这是使用的代码:
List<NewsSearchResultItem> results = new List<NewsSearchResultItem>();
var index = ContentSearchManager.GetIndex("sitecore_web_index");
using (IProviderSearchContext context = index.CreateSearchContext())
{
var tempResults = context.GetQueryable<NewsSearchResultItem>()
.Where(item => item.Path.Contains("/sitecore/content/News"))
.Take(10);
results = tempResults.ToList();
}
return results.Select(s => new NewsViewModel(s.GetItem())).ToList();
答案 0 :(得分:1)
Solr with Sitecore默认将文本字段存储为小写字段。
将load variable cnt1 to memA;
load 399 to memB
compare mem A to memB
put result to memC
if memC eq "somthing indicating <=" do PORTB |= (1<<7);
if memC something else do PORTB &= ~(1<<7);
load cnt1 to memD and increment;
write memD to cnt1;
load 800 to memE
load cnt1 to memF
compare memF to memE
put result to memG
if memG eq "somthing indicating <=" do memF = 0, write memF to cnt1;
if memG something else go to start;
子句更改为使用 1. comare cnt1-399
2. if ok - do / else
3. port high / port low
4. add one to cnt1
5. compare cnt1 and 800
:
Where
另外请记住添加过滤器以仅使用当前语言 - 尽管事实上它们没有特定语言的任何版本,但Solr for Sitecore项目可能会有一些文档。
答案 1 :(得分:1)
这可能是Marek所说的一个小写问题,但您也可以尝试使用Paths
属性而不是Path
,如下所示:
var tempResults = context.GetQueryable<NewsSearchResultItem>()
.Where(item => item.Paths.Contains(Sitecore.Data.ID.Parse("News Item ID (GUID)")))
.Take(10);