我正在將Sitecore Lucene搜索提供程序切換到Solr。核心已經配置好了,我可以毫無問題地重建所有CORE。Sitecore GetQueryable Filter從Lucene切換後不返回SOLR的任何結果
我還更新了每個Solr映射需求的計算索引字段。但是,出於奇怪的原因,下面的查詢沒有返回任何結果。
using (var context = index.CreateSearchContext(SearchSecurityOptions.DisableSecurityCheck))
{
var query = context.GetQueryable<ArticleSearchResultItem>().Filter(item => item.Category == categoryId);
var results = query.GetResults();
}
但是,當我這樣做,我可以匹配categoryid,即如果條件,我可以打內部。
using (var context = index.CreateSearchContext(SearchSecurityOptions.DisableSecurityCheck))
{
var query1 = context.GetQueryable<ArticleSearchResultItem>();
foreach (var q in query1)
{
if (q.Category == categoryId)
{
//Matched Category ID
}
}
}
第二個測試上述確認:
- 我從SOLR
- 得到的數據和結果具有匹配的categoryId
但我只是不明白爲什麼第一個不符合它!
會明白,如果你可以查看下面我POCO和字段映射:
字段映射:
<fields hint="raw:AddComputedIndexField">
field fieldName="articlecategory" returnType="string">MyNameSpace.ComputedFields.ArticleCategoryField, MyNameSpace.Business</field>
....
POCO:
public class ArticleSearchResultItem : BaseSearchItem
{
[IndexField("articlecategory")]
[TypeConverter(typeof(IndexFieldIDValueConverter))]
public ID Category { get; set; }
}
上Search.log
下方注意的23732 2016:01:23 22:49:46 INFO序列化查詢 - ?q = articlecategory_s:(e83405719a5c4ff1 8595d685c9103e0f)&行= 2147483647 & FL = *,得分& FQ = _indexname:(sitecore_web_index)
試圖複製粘貼到Solr管理下面的查詢,沒有東西返回。
?q=articlecategory_s:(e83405719a5c4ff18595d685c9103e0f)&rows=2147483647&fl=*,score&fq=_indexname:(sitecore_web_index)
嘗試檢查Web UI中索引的內容。你可以通過使用「核心選擇器」下拉菜單,然後我認爲它是在左側菜單中的「查詢」或類似的東西。通過使用json對象設置'q'參數來查詢。 –