2016-07-25 60 views
2

我可以做的Solr查詢與清除所有FilterQuery在Sitecore.ContentSearch LINQ查詢

var index = ContentSearchManager.GetIndex(IndexName); 
var context = index.CreateSearchContext() 
var results = context.GetQueryable<SolrCoreModel>().GetResults()... 

但在原料的Solr查詢FQ參數總是添加INDEXNAME

&fq=_indexname:(solr_core) 

我怎樣才能刪除它,發送'清除'查詢?

回答

2

你不能用Sitecore和ContentSearchManager來做到這一點。

這就是Sitecore如何將數據存儲在Solr中 - 它將它分解爲「索引」。您無法使用Sitecore API進行查詢,也無需將索引名稱傳遞給Solr。

當Sitecore索引任何項目時,例如, Home項目,如果這是您的master數據庫中的Home項目,它將與_indexname字段一起存儲,例如,到sitecore_master_indexweb數據庫中的相同項目將標記爲sitecore_web_index

+0

所以,我可以以某種方式傳遞它與查詢,而不是FilterQuery? – Saint

+0

我猜你必須完全跳過Sitecore API並嘗試低級別的'Solr.net'。我不確定是否有可能。爲什麼你甚至試圖這樣做? –

+0

我有自定義solr核心,我用它作爲另一個具有不同模式的核心的「合併」核心。它看起來像什麼時候通過'fq'傳遞了某個字段應該包含在兩個模式中。 'q'沒有這樣的限制。 – Saint