I upgraded sitecore from 6.6 to 7.0. In the process I upgraded all projects in the solution to .net framework 4.5 and also upgraded all the nuget packages.
After upgrade I am able to build my solution and browse the website but getting runtime error when come across sitecore search related features.
So I am getting error in following scenarios: 1. when performing any search in sitecore console. 2. when performing any search from website.
Project has custom search functionality.
Getting following error:
Server Error in '/' Application.
Field not found: 'Store.YES'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.MissingFieldException: Field not found: 'Store.YES'.
Source Error:
Line 36: return new List<Item>();
Line 37:
Line 38: var searchIndex = SearchManager.GetIndex(_options.Database.Name.ToLower());
Line 39: using (var context = searchIndex.CreateSearchContext())
Line 40: {
Source File: c:\Gexa\Source\Customer Care\External Web\KStreet\DEV - SmallComm\GexaNes.Services\SearchService\SiteSearcher.cs Line: 38
Stack Trace:
[MissingFieldException: Field not found: 'Store.YES'.]
scSearchContrib.Crawler.SearchField.SetStorageType(String storageType) +0
scSearchContrib.Crawler.Crawlers.AdvancedDatabaseCrawler.AddFieldTypes(XmlNode configNode) +470
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +92
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +108
Sitecore.Configuration.Factory.AssignProperties(Object obj, Object[] properties) +571
Sitecore.Configuration.Factory.AssignProperties(XmlNode configNode, String[] parameters, Object obj, Boolean assert, Boolean deferred, IFactoryHelper helper) +523
Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +198
Sitecore.Configuration.Factory.CreateObject(String configPath, String[] parameters, Boolean assert) +298
Sitecore.Configuration.Factory.CreateFromReference(XmlNode configNode, String[] parameters, Boolean assert) +91
Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +81
Sitecore.Configuration.Factory.GetInnerObject(XmlNode paramNode, String[] parameters, Boolean assert) +706
Sitecore.Configuration.Factory.AssignProperties(XmlNode configNode, String[] parameters, Object obj, Boolean assert, Boolean deferred, IFactoryHelper helper) +416
Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +198
Sitecore.Configuration.Factory.GetInnerObject(XmlNode paramNode, String[] parameters, Boolean assert) +706
Sitecore.Configuration.Factory.AssignProperties(XmlNode configNode, String[] parameters, Object obj, Boolean assert, Boolean deferred, IFactoryHelper helper) +416
Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +198
Sitecore.Configuration.Factory.CreateObject(String configPath, String[] parameters, Boolean assert) +298
Sitecore.Configuration.Factory.CreateObject(String configPath, Boolean assert) +38
Sitecore.Search.SearchManager.get_SearchConfiguration() +24
Sitecore.Search.SearchManager.GetIndex(String id) +41
GexaNes.Services.SearchService.SiteSearcher.Search(String searchTerm, Int32& resultCount, Int32 start, Int32 end) in c:\Gexa\Source\Customer Care\External Web\KStreet\DEV - SmallComm\GexaNes.Services\SearchService\SiteSearcher.cs:38
GexaNes.Web.Layout.Sublayouts.Pages.Search.DoSearch(Int32& totalResults) in c:\Gexa\Source\Customer Care\External Web\KStreet\DEV - SmallComm\GexaNes.Web\Layout\Sublayouts\Pages\Search.ascx.cs:138
GexaNes.Web.Layout.Sublayouts.Pages.Search.Page_Load(Object sender, EventArgs e) in c:\Gexa\Source\Customer Care\External Web\KStreet\DEV - SmallComm\GexaNes.Web\Layout\Sublayouts\Pages\Search.ascx.cs:83
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
System.Web.UI.Control.OnLoad(EventArgs e) +92
System.Web.UI.Control.LoadRecursive() +54
System.Web.UI.Control.LoadRecursive() +145
System.Web.UI.Control.LoadRecursive() +145
System.Web.UI.Control.LoadRecursive() +145
System.Web.UI.Control.LoadRecursive() +145
System.Web.UI.Control.LoadRecursive() +145
System.Web.UI.Control.LoadRecursive() +145
System.Web.UI.Control.LoadRecursive() +145
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
+772
Following is the custom config related to search:
<configuration xmlns:x="http://www.sitecore.net/xmlconfig/">
<sitecore>
<databases>
<database id="web" singleInstance="true" type="Sitecore.Data.Database, Sitecore.Kernel">
<Engines.HistoryEngine.Storage>
<obj type="Sitecore.Data.$(database).$(database)HistoryStorage, Sitecore.Kernel">
<param connectionStringName="$(id)" />
<EntryLifeTime>30.00:00:00</EntryLifeTime>
</obj>
</Engines.HistoryEngine.Storage>
<Engines.HistoryEngine.SaveDotNetCallStack>false</Engines.HistoryEngine.SaveDotNetCallStack>
</database>
</databases>
<search>
<configuration>
<indexes>
<index id="web" type="Sitecore.Search.Index, Sitecore.Kernel">
<param desc="name">$(id)</param>
<param desc="folder">$(id)</param>
<Analyzer ref="search/analyzer" />
<locations hint="list:AddCrawler">
The crawler configuration is shared and moved outside
<web ref="search/crawlers/default" param1="web" />
</locations>
</index>
<index id="master" type="Sitecore.Search.Index, Sitecore.Kernel">
<param desc="name">$(id)</param>
<param desc="folder">$(id)</param>
<Analyzer ref="search/analyzer" />
<locations hint="list:AddCrawler">
The crawler configuration is shared and moved outside
<master ref="search/crawlers/default" param1="master" />
</locations>
</index>
</indexes>
</configuration>
<crawlers>
<default type="GexaNes.Web.Utilities.IndexCrawler,GexaNes.Web">
<Database>$(1)</Database>
<Root>/sitecore/content</Root>
<IndexAllFields>true</IndexAllFields>
INCLUDE TEMPLATE FILTER
if this filter used, only items based on these templates specified here will be indexed
make sure to add templates GUIDs here with unique xml element <name />
<include hint="list:IncludeTemplate">
<contactUsPage>{41893BA4-A5BC-4B14-BEFB-D65257B813ED}</contactUsPage>
<contentPage>{191B0A26-A1E7-4DA4-A7E9-47FC8485161A}</contentPage>
<landingPage>{0B5298F2-607D-4754-AB6F-CC39559B36F2}</landingPage>
<promoPage>{2BDB4D8C-1313-4457-AD89-CDD117494DA7}</promoPage>
<requestAQuotePage>{3FC81F3D-B6B4-43C8-BE6C-808F154F4382}</requestAQuotePage>
<vanityPage>{04FBFF6D-2EBF-437F-AE17-CC71BECEE3FC}</vanityPage>
</include>
EXCLUDE TEMPLATE FILTER
use this filter to ignore items created from specific templates
make sure to add templates GUIDs here with unique xml element <name />
<include hint="list:ExcludeTemplate">
<uniqueTemplateToken1>{GUID}</uniqueTemplateToken1>
</include>
INCLUDE FIELD FILTER
if this filter used, only these fields will be added to the index.
make sure to add field GUIDs here with unique xml element <name />
<include hint="list:IncludeField">
<uniqueFieldToken1>{GUID}</uniqueFieldToken1>
</include>
EXCLUDE FIELD FILTER
use this filter to ignore specific fields from being indexed
make sure to add field GUIDs here with unique xml element <name />
<include hint="list:ExcludeField">
<__revision>{8CDC337E-A112-42FB-BBB4-4143751E123F}</__revision>
<__contextmenu>{D3AE7222-425D-4B77-95D8-EE33AC2B6730}</__contextmenu>
<__security>{DEC8D2D5-E3CF-48B6-A653-8E69E2716641}</__security>
<__renderings>{F1A1FE9E-A60C-4DDB-A3A0-BB5B29FE732E}</__renderings>
</include>
FIELD CRAWLERS
define logic of how each field is crawled per field type
<fieldCrawlers hint="raw:AddFieldCrawlers">
<fieldCrawler type="scSearchContrib.Crawler.FieldCrawlers.LookupFieldCrawler,scSearchContrib.Crawler" fieldType="Droplink" />
<fieldCrawler type="scSearchContrib.Crawler.FieldCrawlers.LookupFieldCrawler,scSearchContrib.Crawler" fieldType="Droptree" />
<fieldCrawler type="scSearchContrib.Crawler.FieldCrawlers.DateFieldCrawler,scSearchContrib.Crawler" fieldType="Datetime" />
<fieldCrawler type="scSearchContrib.Crawler.FieldCrawlers.DateFieldCrawler,scSearchContrib.Crawler" fieldType="Date" />
<fieldCrawler type="scSearchContrib.Crawler.FieldCrawlers.NumberFieldCrawler,scSearchContrib.Crawler" fieldType="Number" />
<fieldCrawler type="scSearchContrib.Crawler.FieldCrawlers.MultilistFieldCrawler,scSearchContrib.Crawler" fieldType="Multilist" />
<fieldCrawler type="scSearchContrib.Crawler.FieldCrawlers.MultilistFieldCrawler,scSearchContrib.Crawler" fieldType="Treelist" />
<fieldCrawler type="scSearchContrib.Crawler.FieldCrawlers.MultilistFieldCrawler,scSearchContrib.Crawler" fieldType="TreelistEx" />
<fieldCrawler type="scSearchContrib.Crawler.FieldCrawlers.MultilistFieldCrawler,scSearchContrib.Crawler" fieldType="Checklist" />
</fieldCrawlers>
DYNAMIC FIELDS
a set of computed fields to be added to your index
this can significally slow down the indexing process
<dynamicFields hint="raw:AddDynamicFields">
<dynamicField type="scSearchContrib.Crawler.DynamicFields.AllTemplatesField,scSearchContrib.Crawler" name="_alltemplates" storageType="NO" indexType="TOKENIZED" vectorType="NO" boost="1f" />
</dynamicFields>
FIELD TYPE INDEXING SETTINGS
defines how each field is stored/unstored, tokenized/untokenized, boosted, etc. per field type
if a field type is not defined:
defaults of storageType="NO", indexType="UN_TOKENIZED" vectorType="NO" boost="1f" are applied
<fieldTypes hint="raw:AddFieldTypes">
Text fields need to be tokenized
<fieldType name="single-line text" storageType="NO" indexType="TOKENIZED" vectorType="NO" boost="1f" />
<fieldType name="multi-line text" storageType="NO" indexType="TOKENIZED" vectorType="NO" boost="1f" />
<fieldType name="word document" storageType="NO" indexType="TOKENIZED" vectorType="NO" boost="1f" />
<fieldType name="html" storageType="NO" indexType="TOKENIZED" vectorType="NO" boost="1f" />
<fieldType name="rich text" storageType="NO" indexType="TOKENIZED" vectorType="NO" boost="1f" />
<fieldType name="memo" storageType="NO" indexType="TOKENIZED" vectorType="NO" boost="1f" />
<fieldType name="text" storageType="NO" indexType="TOKENIZED" vectorType="NO" boost="1f" />
</fieldTypes>
</default>
</crawlers>
</search>
</sitecore>
</configuration>
Would really appreciate any help in this matter.
Thanks