Message-ID: <1069395936.2990.1485851528475.JavaMail.confluence@ip-10-127-227-164> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_2989_1240385439.1485851528475" ------=_Part_2989_1240385439.1485851528475 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Solr Search Engine Bundle is bu= ndled by default in eZ Platform and these instructions are for configuring = it, for eZ Publish Platform 5.4 instructions see Solr Search Engine Bundle.
Version 1.0.x of Solr Bundle primarily aims to be used as replacem= ent for Legacy (SQL-based) search engine for better scalability and perform= ance (especially with field criteria and sort clauses). And while = it also provides better full text search thanks to Solr, more advance searc= h features like Faceting will come in later releases.
ezplatform-solr-search-engine&n=
bsp;as the package is called, aims to be a transparent drop in replacement =
for the SQL based "Legacy" search engine powering Search API by default. By=
enabling Solr and re-indexing your content, all your exising Search querie=
s using SearchService, will be powered by Solr automatically. This allows y=
ou to scale up your eZ Platform installation and be able to continue develo=
pment locally against SQL engine, and have test infrastructure, Staging and=
Prod powered by Solr. Thus remove considerable load from your database so =
it can focus on more important things, like publishing .
Se Architecture page= em> for further information on the architecture of eZ Platform.
Not needed with eZ Platform
This step is not needed for eZ Platform as of 15.09, however it is kept = here for reference in case you have previously disabled the bundle.
Add/Update composer dependencies:
composer require --no-update ezsystems/ezplatform-solr-search-engi= ne:~1.0 composer update=20
app/AppKernel.php
file: new EzSys=
tems\EzPlatformSolrSearchEngineBundle\EzSystemsEzPlatformSolrSearchEngineBu=
ndle()
First, download and extract Solr, we currently support Solr 4.10= .4:
Secondly, copy configuration files needed for eZ Solr Search Engine bund= le, here from the root of your project to the place you extracted Solr<= /em>:
# Make sure to change the /opt/solr/ path with where you have plac= ed Solr cp -R vendor/ezsystems/ezplatform-solr-search-engine/lib/Resources/config/s= olr/* /opt/solr/example/solr/collection1/conf/ /opt/solr/bin/solr start -f=20
Thirdly, Solr Bundle does not commit solr index changes direc=
tly on repository updates, leaving it up to you to tune this using The Solr search engine bundle can be configured many ways, here are some=
examples: Out of the box in eZ Platform the following is enabled for simple setup:=
In the following example we have decided to separate one language as the=
installation contains several similar languages, and one very different la=
nguage that should be receive proper language analysis for proper stemming =
and sorting behavior by Solr: If full language analysis features are preferred, then each language can=
be configured to separate cores. Note: Please make sure to test this setup against single core as it =
might perform worse then single core if your project uses a lot for languag=
e fallbacks per siteaccess as queries will then be perf=
ormed across several cores at once. The following is an example of configuring Solr Search Engine, whe=
re Make sure to configure your setup for indexing Some exceptions might happen on indexing if you have not configured your=
setup correctly, here are the most common issues you may encounter: Last step is to execute initial indexation of data: After completing the installation you are now free to use your site as u=
sual. If you get any exceptions for missing features, have feedback on perf=
ormance, or want to discuss, join our community slack channel at https://ezcommunity.slack.com/messages/ezplatfo=
rm-use/ solrconfig.xml
as best practice suggests, example config:<=
/p>
<autoCommit>
<!-- autoCommit is here left as-is like it is out of the box in Solr 4=
.10.4, this controls hard commits for durability/replication -->
<maxTime>${solr.autoCommit.maxTime:15000}</maxTime>=20
<openSearcher>false</openSearcher>=20
</autoCommit>
<autoSoftCommit>
<!-- Soft commits controls mainly when changes becomes visible, by def=
ault we change value from -1 (disabled) to 100ms, to try to strike a balanc=
e between Solr performance and staleness of HttpCache generated by Solr que=
ries -->
<maxTime>${solr.autoSoftCommit.maxTime:100}</maxTime>=20
</autoSoftCommit>
=20
Step 3: Configuring bundle
Single Core example (=
default)
ez_search_engine_solr:
endpoints:
endpoint0:
dsn: %solr_dsn%
core: collection1
connections:
default:
entry_endpoints:
- endpoint0
mapping:
default: endpoint0
=20
Shared Core example
ez_search_engine_solr:
endpoints:
endpoint0:
dsn: %solr_dsn%
core: core0
endpoint1:
dsn: %solr_dsn%
core: core1
connections:
default:
entry_endpoints:
- endpoint0
- endpoint1
mapping:
translations:
- jpn-JP: endpoint1
# Other languages, for instance eng-US and other western la=
nguages are sharing core
default: endpoint0
=20
Multi Core example
ez_search_engine_solr:
endpoints:
endpoint0:
dsn: %solr_dsn%
core: core0
endpoint1:
dsn: %solr_dsn%
core: core1
endpoint2:
dsn: %solr_dsn%
core: core2
endpoint3:
dsn: %solr_dsn%
core: core3
endpoint4:
dsn: %solr_dsn%
core: core4
endpoint5:
dsn: %solr_dsn%
core: core5
endpoint6:
dsn: %solr_dsn%
core: core6
connections:
default:
entry_endpoints:
- endpoint0
- endpoint1
- endpoint2
- endpoint3
- endpoint4
- endpoint5
- endpoint6
mapping:
translations:
- jpn-JP: endpoint1
- eng-US: endpoint2
- fre-FR: endpoint3
- ger-DE: endpoint4
- esp-ES: endpoint5
# Not really used, but specified here for fallback if more =
languages are suddenly added by content admins
default: endpoint0
# Also use separate core for main languages (differs from c=
ontent object to content object)
# This is useful to reduce number of cores queried for alwa=
ys available language fallbacks
main_translations: endpoint6
=20
Step 4: Configuring repository with the specific search engine
connection
name is same as in example above, and =
engine is set to solr
:ezpublish:
repositories:
main:
storage:
engine: legacy
connection: default # This should be the connection you had=
from before for repository
search:
engine: solr # One of legacy (default) or solr
connection: default # If legacy same as storage applies, if=
solr use same as you defined in step 3
=20
Step 5: Run CLI indexing =
command
ezplatform.yml
configuration var_dir
is configured properly. <=
/li>
php app/console --env=3Dprod --siteaccess=3D<name> ezplatfor=
m:solr_create_index
=20
Providing feedback