Search code examples
lucenesitecoresitecore7

Custom search configuration in sitecore 7


I have been working on the sitecore contentSearch API recently.When i try to build the custom Index,I'm getting the runtime errors as follows.

Could not find property 'initializeOnAdd' on object of type: Sitecore.ContentSearch.LuceneProvider.LuceneIndexConfiguration

This is my sample configuration.

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <contentSearch>
      <configuration type="Sitecore.ContentSearch.LuceneProvider.LuceneSearchConfiguration, Sitecore.ContentSearch.LuceneProvider">
        <indexes hint="list:AddIndex">
          <index id="demo_master" type="Sitecore.ContentSearch.LuceneProvider.LuceneIndex, Sitecore.ContentSearch.LuceneProvider">
            <param desc="name">$(id)</param>
            <param desc="folder">$(id)</param>
            <!-- This initializes index property store. Id has to be set to the index id -->
            <param desc="propertyStore" ref="contentSearch/databasePropertyStore" param1="$(id)" />
            <configuration ref="contentSearch/indexConfigurations/LuceneCustomSearchConfiguration" />
            <strategies hint="list:AddStrategy">
              <!-- NOTE: order of these is controls the execution order -->
              <strategy ref="contentSearch/indexUpdateStrategies/syncMaster" />
            </strategies>
            <commitPolicyExecutor type="Sitecore.ContentSearch.CommitPolicyExecutor, Sitecore.ContentSearch">
              <policies hint="list:AddCommitPolicy">
                <policy type="Sitecore.ContentSearch.TimeIntervalCommitPolicy, Sitecore.ContentSearch" />
              </policies>
            </commitPolicyExecutor>
            <locations hint="list:AddCrawler">
              <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
                <Database>master</Database>
                <Root>/sitecore/content/Sample</Root>
              </crawler>
            </locations>
          </index>
        </indexes>
      </configuration>
      <indexConfigurations>
        <LuceneCustomSearchConfiguration type="Sitecore.ContentSearch.LuceneProvider.LuceneIndexConfiguration, Sitecore.ContentSearch.LuceneProvider">
          <indexAllFields>true</indexAllFields>
          <initializeOnAdd>true</initializeOnAdd>
          <analyzer ref="contentSearch/configuration/defaultIndexConfiguration/analyzer" />
          <fieldMap type="Sitecore.ContentSearch.FieldMap, Sitecore.ContentSearch">
            <fieldNames hint="raw:AddFieldByFieldName">
              <field fieldName="_uniqueid"            storageType="YES" indexType="TOKENIZED"    vectorType="NO" boost="1f" type="System.String" settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider">
                <analyzer type="Sitecore.ContentSearch.LuceneProvider.Analyzers.LowerCaseKeywordAnalyzer, Sitecore.ContentSearch.LuceneProvider" />
              </field>
              <field fieldName="Name"  storageType="YES" indexType="TOKENIZED"    vectorType="NO" boost="1f" type="System.String" settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider">
                <analyzer type="Sitecore.ContentSearch.LuceneProvider.Analyzers.LowerCaseKeywordAnalyzer, Sitecore.ContentSearch.LuceneProvider" />
              </field>
              </fieldNames>
          </fieldMap>
          <fields hint="raw:AddComputedIndexField">
            <field fieldName="imageurl">Lucene.CustomSearch.BusinessLayer.ComputedFields.ImageUrlComputedField,Lucene.CustomSearch.BusinessLayer</field>
            <field fieldName="releaseyear">Lucene.CustomSearch.BusinessLayer.ComputedFields.YearComputedField,Lucene.CustomSearch.BusinessLayer</field>
            </fields>
          <include hint="list:IncludeTemplate">
            <Laptop>{3AF80D80-404F-411F-9E72-F43A7D92AEC8}</Laptop>
          </include>
          <fieldReaders ref="contentSearch/configuration/defaultIndexConfiguration/fieldReaders"/>
          <indexFieldStorageValueFormatter ref="contentSearch/configuration/defaultIndexConfiguration/indexFieldStorageValueFormatter"/>
          <indexDocumentPropertyMapper ref="contentSearch/configuration/defaultIndexConfiguration/indexDocumentPropertyMapper"/>
        </LuceneCustomSearchConfiguration>
      </indexConfigurations>
    </contentSearch>
  </sitecore>
</configuration>

I had a look at sitecore's search configuration file and do some changes on it.Type & analyzer settings.am i missing anything in configuration?


Solution

  • I have fixed this issue by myself.here is the configuration setting for Sitecore 7 Custom search.

    <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
      <sitecore>
        <contentSearch>
          <configuration type="Sitecore.ContentSearch.LuceneProvider.LuceneSearchConfiguration, Sitecore.ContentSearch.LuceneProvider">
            <indexes hint="list:AddIndex">
              <index id="demo_master" type="Sitecore.ContentSearch.LuceneProvider.LuceneIndex, Sitecore.ContentSearch.LuceneProvider">
                <param desc="name">$(id)</param>
                <param desc="folder">$(id)</param>
                <!-- This initializes index property store. Id has to be set to the index id -->
                <param desc="propertyStore" ref="contentSearch/databasePropertyStore" param1="$(id)" />
                <configuration ref="contentSearch/indexConfigurations/LuceneCustomSearchConfiguration" />
                <strategies hint="list:AddStrategy">
                  <!-- NOTE: order of these is controls the execution order -->
                  <strategy ref="contentSearch/indexUpdateStrategies/syncMaster" />
                </strategies>
                <commitPolicyExecutor type="Sitecore.ContentSearch.CommitPolicyExecutor, Sitecore.ContentSearch">
                  <policies hint="list:AddCommitPolicy">
                    <policy type="Sitecore.ContentSearch.TimeIntervalCommitPolicy, Sitecore.ContentSearch" />
                  </policies>
                </commitPolicyExecutor>
                <locations hint="list:AddCrawler">
                  <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
                    <Database>master</Database>
                    <Root>/sitecore/content/Sample</Root>
                  </crawler>
                </locations>
              </index>
            </indexes>
          </configuration>
          <indexConfigurations>
            <LuceneCustomSearchConfiguration type="Sitecore.ContentSearch.ContentSearchConfiguration, Sitecore.ContentSearch">
              <indexAllFields>true</indexAllFields>
               <initializeOnAdd>true</initializeOnAdd>
              <analyzer ref="contentSearch/configuration/defaultIndexConfiguration/analyzer" />
              <fieldMap type="Sitecore.ContentSearch.FieldMap, Sitecore.ContentSearch">
                <fieldNames hint="raw:AddFieldByFieldName">
                  <field fieldName="_uniqueid"            storageType="YES" indexType="TOKENIZED"    vectorType="NO" boost="1f" type="System.String" settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider">
                    <analyzer type="Sitecore.ContentSearch.LuceneProvider.Analyzers.LowerCaseKeywordAnalyzer, Sitecore.ContentSearch.LuceneProvider" />
                  </field>
                  </fieldNames>
              </fieldMap>
              <fields hint="raw:AddComputedIndexField">
                <field fieldName="imageurl">Lucene.CustomSearch.BusinessLayer.ComputedFields.ImageUrlComputedField,Lucene.CustomSearch.BusinessLayer</field>
                </fields>
              <include hint="list:IncludeTemplate">
                <Laptop>{3AF80D80-404F-411F-9E72-F43A7D92AEC8}</Laptop>
              </include>
              <fieldReaders ref="contentSearch/configuration/defaultIndexConfiguration/fieldReaders"/>
              <indexFieldStorageValueFormatter ref="contentSearch/configuration/defaultIndexConfiguration/indexFieldStorageValueFormatter"/>
              <indexDocumentPropertyMapper ref="contentSearch/configuration/defaultIndexConfiguration/indexDocumentPropertyMapper"/>
            </LuceneCustomSearchConfiguration>
          </indexConfigurations>
        </contentSearch>
      </sitecore>
    </configuration>