/o//commerce-media/accounts/-1/images/18469903?download=true

Elasticray (Elasticsearch plugin for liferay)
Icon
DXP App
18469848
This app provides integration with Elasticsearch, the popular open source search server based on Apache Lucene
*****************************************************************************************************************************
Prerequisites
Java 1.7
Liferay 6.1 CE / Liferay 6.2 CE & EE
Elasticsearch 1.4.0
*****************************************************************************************************************************
Deploying the plugin

Quick steps
1) Ensure Liferay 6.1/ Liferay 6.2 and Java 1.7 software is installed in your machine.
2) Install Elasticsearch 1.4.0 (http://www.elasticsearch.org/downloads/1-4-0/ )">http://www.elasticsearch.org/downloads/1-4-0/ )
3) Configure Elasticsearch server in the Liferay (modify portal-ext.properties)
4) Remove solr-web plugin if deployed.
5) Copy the elasticray plugin war file to deploy directory of Liferay.

Each step explained
Step 1 (Install Elasticsearch server).
a) Download the Elasticsearch 1.4.0 version from here: http://www.elasticsearch.org/downloads/1-4-0/
b) Based on the OS, you can use the corresponding file. For windows get the zip file and unzip to a folder say ES_INSTALL_DIR
c) Double click elasticsearch.bat (if in windows) from ES_INSTALL_DIR/bin

Step 2 (Configuring Elasticsearch server in the Liferay)
Add the following lines to the portal-ext.properties file which point to the correct ip address and port of Elasticsearch server.
elasticsearch.serverIP=127.0.0.1
elasticsearch.portNumber=9300
elasticsearch.cluster.name=elasticsearch

Step 3
If you have an existing solr-web plugin deployed, please undeploy it.

Step 4 (Deploy the plugin)
Copy the plugin war file to deploy directory of Liferay.

Step 5
Once the installation is done, do a "Reindex all search indexes" from control panel -> Server Administration
****************************************************************************************************************************
Documentation

For more documentation please visit link here:
https://github.com/R-Knowsys/elasticray/wiki

Verifying Installations

Place the search portlet in home page and click on 'search' based on keyword 'liferay'.
Set the logs for the package "com.rknowsys.portal.search.elastic" in DEBUG mode
You will find the search results in browser and in console you will find following lines showing elasticsearch.

05:13:32,450 DEBUG [http-bio-8080-exec-10][ElasticsearchIndexSearcher:63] Query String {__ "query_string" : {__ "query" : "+(+(companyId:10157) +((+(entryClassName:com.liferay.portal.model.User) +(status:0)) (+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksEntry) +(status:0)) (+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksFolder) +(status:0)) (+(entryClassName:com.liferay.portlet.blogs.model.BlogsEntry) +(status:0)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFileEntry) +(status:0) +(hidden:false)) (+ ...... __} [Sanitized]
****************************************************************************************************************************
For Java 1.6, use elasticray (https://github.com/R-Knowsys/elasticray/tree/elasticray-jdk-1.6) and elasticsearch 1.1.2
DEVELOPER
Rknowsys Technologies
DEVELOPER
4/02/15 0:00
Published date
April 2, 2015
Published Date
4/02/15 0:00
SUPPORTED OFFERINGS
Self-Hosted, Self-Managed
Supported Versions
6.2, 6.1
Resource Requirements
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> channel.items[0]  [in template "3192443#3192485#null" at line 18, column 30]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign channelId = channel.items[0].id  [in template "3192443#3192485#null" at line 18, column 9]
----
1<#if themeDisplay?has_content> 
2	<#assign scopeGroupId = themeDisplay.getScopeGroupId() /> 
3</#if> 
4 
5<#if currentURL?has_content> 
6	<#if currentURL?contains('web')> 
7		<#assign 
8			index = 2 
9			partsUrl = currentURL?split('/') 
10			siteName = partsUrl[index..index]?join('/') 
11		/> 
12	</#if> 
13</#if> 
14 
15<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") /> 
16 
17<#if channel?has_content> 
18	<#assign channelId = channel.items[0].id /> 
19</#if> 
20 
21<#if (CPDefinition_cProductId.getData())??> 
22	<#assign productId = CPDefinition_cProductId.getData() /> 
23</#if> 
24 
25<#assign 
26	product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=productSpecifications") 
27	specifications = product.productSpecifications![] 
28/> 
29 
30<div> 
31	<#if specifications?has_content> 
32 
33		<#assign 
34			specificationCPUs = specifications?filter(item -> stringUtil.equals(item.specificationKey, "cpu")) 
35			specificationRAMs = specifications?filter(item -> stringUtil.equals(item.specificationKey, "ram")) 
36			 cpuQuantity = "" 
37				  memoryQuantity = "" 
38		/> 
39 
40		<#if specificationCPUs?has_content> 
41		 	<#list specificationCPUs as cpu> 
42				<#assign cpuQuantity = cpu.value /> 
43 
44				<#if cpuQuantity?has_content> 
45					${cpuQuantity} 
46					<#if cpuQuantity?eval gt 1> 
47						CPUS 
48					</#if> 
49 
50					<#if cpuQuantity?eval lt 2> 
51						CPU 
52					</#if> 
53				</#if> 
54		  	</#list> 
55		</#if> 
56 
57		<#if specificationRAMs?has_content> 
58		  	<#list specificationRAMs as ram> 
59				<#assign memoryQuantity = ram.value /> 
60 
61				<#if cpuQuantity?has_content && memoryQuantity?has_content >, </#if> 
62 
63				<#assign memoryQuantity = ram.value /> 
64 
65				<#if memoryQuantity?has_content> 
66					${memoryQuantity} GB RAM 
67				</#if> 
68		  	</#list> 
69		</#if> 
70	</#if> 
71</div> 
Edition
CE, EE
PRICE
Free
help & support
Terms & Conditions
SHARE LINK
Copy & Share Link

HTML Example

A paragraph is a self-contained unit of a discourse in writing dealing with a particular point or idea. Paragraphs are usually an expected part of formal writing, used to organize longer prose.