Configure solr at your machine with simple steps




In this article we will learn how to setup solr.

So moving on to setup solr firstly we need exact solr version as per requirement. I am using solr 6.6.2 version

You can download solr version from this url  https://archive.apache.org/dist/lucene/solr/6.6.2/
Once you finish download extract folder and move it in C: drive.

Other thing we need java runtime environment so we have to download as per suitable version
just download and install this exe.

Once you installed JRE then moving on command prompt. Open CMD as admin mode and go solr bin folder using this command.




Once you come in bin folder then you have to put below command to start solr. If you want to set another port then you can set. By default solr listen default port 8983



Now you can see solr running successfully so we are going to browser for open solr admin panel. Just copy paste this url http://localhost:8983/solr/#/ and you will see solr admin panel.



These are the simple steps to configure solr.


Configure Solr with Sitecore:  let's explore the steps to confgure with Sitecore, we already run solr so let's move on step first!

Step 1:  let's move on below path and make duplicate basic_config with rename sitecore_config          C:\Solr-6.6.2\server\solr\configsets



Step 2: Before go ahead we need to generate schema.xml so please go through KB Article in sitecore_config folder. once you done the schema open schema and check below field exist or not if yes then it should be looks like:

<fieldType name="pint" class="solr.TrieIntField" />

 we need to check one more dynamic field in schema if not same then change it with below!

<dynamicField name="*_pi" type="tint" indexed="true" stored="true" />

Step 3: once these things done then copy sitecore_config folder and paste it below location and change the name like sitecore_master_index.

C:\Solr-6.6.2\server\solr


Step 4: Now Let's move to generate solr schema by Sitecore. Navigate to Sitecore>Controle panel>Indexing and choose Generate the Solr Schema.xml file and pass the same source and target path looks like below:


and please make sure your Solr folder have full permission to generate schema. once you finish the generated schema.xml then open it and change the type by type="text_general" !

<dynamicField name="*_t_ar" type="text_ar" indexed="true" stored="true" />
<dynamicField name="*_t_bg" type="text_bg" indexed="true" stored="true" />
<dynamicField name="*_t_ca" type="text_ca" indexed="true" stored="true" />
<dynamicField name="*_t_cz" type="text_cz" indexed="true" stored="true" />
<dynamicField name="*_t_da" type="text_da" indexed="true" stored="true" />
<dynamicField name="*_t_de" type="text_de" indexed="true" stored="true" />
<dynamicField name="*_t_el" type="text_el" indexed="true" stored="true" />
<dynamicField name="*_t_es" type="text_es" indexed="true" stored="true" />
<dynamicField name="*_t_eu" type="text_eu" indexed="true" stored="true" />
<dynamicField name="*_t_fa" type="text_fa" indexed="true" stored="true" />
<dynamicField name="*_t_fi" type="text_fi" indexed="true" stored="true" />
<dynamicField name="*_t_fr" type="text_fr" indexed="true" stored="true" />
<dynamicField name="*_t_ga" type="text_ga" indexed="true" stored="true" />
<dynamicField name="*_t_gl" type="text_gl" indexed="true" stored="true" />
<dynamicField name="*_t_hi" type="text_hi" indexed="true" stored="true" />
<dynamicField name="*_t_hu" type="text_hu" indexed="true" stored="true" />
<dynamicField name="*_t_hy" type="text_hy" indexed="true" stored="true" />
<dynamicField name="*_t_id" type="text_id" indexed="true" stored="true" />
<dynamicField name="*_t_it" type="text_it" indexed="true" stored="true" />
<dynamicField name="*_t_ja" type="text_ja" indexed="true" stored="true" />
<dynamicField name="*_t_lv" type="text_lv" indexed="true" stored="true" />
<dynamicField name="*_t_nl" type="text_nl" indexed="true" stored="true" />
<dynamicField name="*_t_no" type="text_no" indexed="true" stored="true" />
<dynamicField name="*_t_pt" type="text_pt" indexed="true" stored="true" />
<dynamicField name="*_t_ro" type="text_ro" indexed="true" stored="true" />
<dynamicField name="*_t_ru" type="text_ru" indexed="true" stored="true" />
<dynamicField name="*_t_sv" type="text_sv" indexed="true" stored="true" />
<dynamicField name="*_t_th" type="text_th" indexed="true" stored="true" />
<dynamicField name="*_t_tr" type="text_tr" indexed="true" stored="true" />

So Once you done the changes then it should be looks like below lines:

<dynamicField name="*_t_ar" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_bg" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_ca" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_cz" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_da" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_de" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_el" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_es" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_eu" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_fa" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_fi" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_fr" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_ga" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_gl" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_hi" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_hu" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_hy" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_id" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_it" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_ja" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_lv" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_nl" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_no" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_pt" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_ro" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_ru" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_sv" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_th" type="text_general" indexed="true" stored="true" />
<dynamicField name="*_t_tr" type="text_general" indexed="true" stored="true" />

 
Step 5: Save schema.xml and move on Solr admin panel to create core, fill the name,instanceDir and create it the core! once you done then you will see the core in core selector dropdown.



Step 6: Now we need to disable lucene configuration and enable Solr configuration in Sitecore root folder so let's move on  Website\App_Config\Include and find below Lucene files to make it disable!

Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config
Sitecore.ContentSearch.Lucene.Index.Analytics.config
Sitecore.ContentSearch.Lucene.Index.Core.config
Sitecore.ContentSearch.Lucene.Index.Master.config
Sitecore.ContentSearch.Lucene.Index.Web.config
Sitecore.ContentSearch.Lucene.Indexes.Sharded.Core.config
Sitecore.ContentSearch.Lucene.Indexes.Sharded.Master.config
Sitecore.ContentSearch.Lucene.Indexes.Sharded.Web.config

And find below Solr files to make it enable!

Sitecore.ContentSearch.Solr.DefaultIndexConfiguration.config
Sitecore.ContentSearch.Solr.Index.Analytics.config
Sitecore.ContentSearch.Solr.Index.Core.config
Sitecore.ContentSearch.Solr.Index.Master.config
Sitecore.ContentSearch.Solr.Index.Web.config


Step 7: Next thing we need to put Solr connection string in ConnectionString.config

  <add name="solr.search" connectionString="http://localhost:8970/solr" />
 
Once more thing we need to change in Sitecore.ContentSearch.Solr.DefaultIndexConfiguration.config files with below lines.

<setting name="ContentSearch.Solr.ServiceBaseAddress" value="http://localhost:8970/solr" /> - set port accordingly
<setting name="ContentSearch.Solr.EnableHttpCache" value="false" />


That's done save it and rebuild master index and verify the work on Solr admin panel.




Enjoy with Solr search for more details you can go through below URL.


And if you want to run Solr service as window service the you have to do some more steps.
please go through below URL for that.
https://sitecore.stackexchange.com/questions/1211/how-to-get-solr-to-run-as-a-service
https://www.norconex.com/how-to-run-solr5-as-a-service-on-windows/


Happy Coding

Comments

Popular posts from this blog

Difference between shared, Versioned and Unversioned fileds in sitecore

How to find broken links in Sitecore.

Setup First Sitecore Helix Example From Scratch (Blank solution)