/o//commerce-media/accounts/-1/images/18469903?download=true
Elasticray (Elasticsearch plugin for liferay)
Une erreur s'est produite lors du traitement du modèle.
The following has evaluated to null or missing: ==> channel.items [in template "3192443#3192485#null" at line 109, column 30] ---- Tip: It's the step after the last dot 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 109, column 9] ----
1<style>
2 .app-container {
3 border-color: #2e5aac !important;
4 color: #2e5aac;
5 font-size: MEDIUM;
6 }
7
8 .app-category {
9 display: block;
10 flex: 1;
11 max-width: 200px;
12 overflow: hidden;
13 text-overflow: ellipsis;
14 white-space: nowrap;
15 }
16
17 .app-container .app-category {
18 background-color: #e6ebf5;
19 color: #1c3667;
20 padding: 4px 8px;
21 }
22
23 .app-container .app-product-type {
24 min-width: 0;
25 overflow: hidden;
26 text-overflow: ellipsis;
27 white-space: nowrap;
28 }
29
30 .client-extension-product-type {
31 background-color: #FFE6C6;
32 color: #9D4C00;
33 }
34
35 .cloud-product-type {
36 background-color: #D1EEDC;
37 color: #0E7835;
38 }
39
40 .composite-app-product-type {
41 background-color: #FBE0FF;
42 color: #720086;
43 }
44
45 .diamond-icon-container {
46 color: #C9C9CF;
47 height: 4px;
48 width: 4px;
49 }
50
51 .dxp-product-type {
52 background-color: #D1ECFA;
53 color: #166E9E;
54 }
55
56 .low-code-configuration-product-type {
57 background-color: #DCD7E9;
58 color: #503690;
59 }
60
61 @media screen and (max-width: 768px) {
62 .app-container {
63 font-size: small;
64 }
65 }
66
67 @media screen and (max-width: 576px) {
68 .app-container {
69 font-size: x-small;
70 }
71
72 .app-container .app-category,
73 .app-container .app-product-type {
74 padding: 2px 4px;
75 }
76 }
77</style>
78
79<#assign
80 productTypeValues =
81 {
82 "client-extension": "Client Extension",
83 "cloud": "Cloud App",
84 "composite-app": "Composite App",
85 "dxp": "DXP App",
86 "low-code-configuration": "Low-Code"
87 }
88
89 VOCABULARY_PRODUCT_CATEGORY = "MARKETPLACE-APP-CATEGORY"
90/>
91
92<#if themeDisplay?has_content>
93 <#assign scopeGroupId = themeDisplay.getScopeGroupId() />
94</#if>
95
96<#if currentURL?has_content>
97 <#if currentURL?contains('web')>
98 <#assign
99 index = 2
100 partsUrl = currentURL?split('/')
101 siteName = partsUrl[index..index]?join('/')
102 />
103 </#if>
104</#if>
105
106<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") />
107
108<#if channel?has_content>
109 <#assign channelId = channel.items[0].id />
110</#if>
111
112<#if (CPDefinition_cProductId.getData())??>
113 <#assign productId = CPDefinition_cProductId.getData() />
114</#if>
115
116<#assign
117 product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=productSpecifications,categories")
118 categories = product.categories![]
119 productSpecifications = product.productSpecifications![]
120/>
121
122<div class="app-container color-neutral-3 d-flex flex-wrap font-size-paragraph-small justify-content-between w-100">
123 <div class="d-flex">
124 <#if productSpecifications?has_content>
125 <#assign productTypes = productSpecifications?filter(item -> stringUtil.equals(item.specificationKey, "type")) />
126
127 <#list productTypes as productType>
128 <#if productType?has_content>
129 <#assign appType = (productTypeValues[productType.value]!) />
130
131 <#if appType?has_content>
132 <div class="align-items-center app-product-type border border-radius-small d-flex mb-1 mr-2 px-2 rounded-lg ${productType.value}-product-type">
133 <div class="bg-neutral-8">${appType}</div>
134 </div>
135 </#if>
136 </#if>
137 </#list>
138 </#if>
139
140 <#if categories?has_content>
141 <#assign filteredCategories = categories?filter(category -> category.vocabulary?upper_case == VOCABULARY_PRODUCT_CATEGORY) />
142
143 <#if filteredCategories?has_content && appType?has_content>
144 <span class="align-items-center d-flex justify-content-between">
145 <span class="align-items-center d-flex diamond-icon-container justify-content-between mr-3">
146 <@clay["icon"] symbol="diamond" />
147 </span>
148 </span>
149 </#if>
150
151 <#list categories as category>
152 <#if category.vocabulary?upper_case == VOCABULARY_PRODUCT_CATEGORY>
153 <span class="app-category bg-neutral-8 border-radius-small mb-1 mr-2 px-3 rounded-lg" title="${category.name}">
154 ${category.name}
155 </span>
156 </#if>
157 </#list>
158 </#if>
159 </div>
160</div>
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
*****************************************************************************************************************************
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
DEVELOPER
21/11/24 17:48
Published date
21/11/24 17:48
Published Date
21/11/24 17:48
SUPPORTED OFFERINGS
Liferay PaaS
Supported Versions
6.2,
6.1
Resource Requirements
Edition
CE
PRICE
Free
help & support
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.