我正在使用Sitecore 8.1和SOLR搜索提供程序。當我執行搜索我得到以下錯誤:Sitecore Solr錯誤未定義的字段標記
2480 2016:01:24 21:29:14 ERROR Solr Error : ["undefined field tags"] - Query attempted: [((_basetemplates_sm:(13789a2000bc4f77a98f40d0a2f18738) AND
-standardvalue_b:(True)) AND ((title_t:(*smoking*))^9 OR (abstract_t:
(*smoking*))^0.200000002980232 OR (articlefulltext_s:
(*smoking*))^0.200000002980232 OR (title_t:(*be*))^9 OR (abstract_t:
(*be*))^0.200000002980232 OR (articlefulltext_s:(*be*))^0.200000002980232 OR
(tags:(d4426cf378c14a97be3459cd9bfe569b))^0.100000001490116))]
我相信這個問題是Sitecore的API以某種方式發送的標籤代替tags_sm。當我在SOLR Admin Portal查詢字符串上手動更新此字段時,它會返回數據。
現在真正的問題是爲什麼Sitecore API發送標籤而不是tags_sm。我看了一下web_index核心上的schema.xml,它具有以下內容:
<field name="_tags" type="string" indexed="true" stored="true" multiValued="true" />
感謝您的幫助。
它是您的自定義搜索查詢嗎?或者內置Sitecore查詢?對於以'_'開頭的所有字段,Sitecore不會附加後綴(如'_sm')。所以Solr的領域將是'_tag'(你應該可以通過盧克證實這一點)。檢查你的'SearchResultItem'類(你傳遞給IQuerable的那個類)是否有一個帶有[[IndexField(「tags」)]屬性的屬性,並在那裏添加非內容。 –
感謝@MarekMusielak,您的解決方案奏效。我將標籤的屬性更新爲_tags工作! –
btw,索引字段映射究竟如何工作,即如何判斷是否以_作爲前綴。 SOLR如何決定索引字段的名稱。 –