Kamesh Sampath Il y a 12 années This is awesome Ray!!! Thanks for the postJust couple of questions around the frameworks used did we try to use Solor or still continued with Lucene and wrote our facet search framework. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kamesh Sampath Il y a 12 années - Edité We have abstracted our own Facet framework so that we could build it more or less on any engine. For Lucene, facet support is implemented using the Bobo engine (http://code.google.com/p/bobo-browse/) and in the case of Solr we just use it's features directly. In both cases we wrap the underlying technology with our own API. The idea being that you could plug any engine in back there and our front end APIs don't need to change. The API is very simple for facet support. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Kamesh Sampath Il y a 12 années - Edité We have abstracted our own Facet framework so that we could build it more or less on any engine. For Lucene, facet support is implemented using the Bobo engine (http://code.google.com/p/bobo-browse/) and in the case of Solr we just use it's features directly. In both cases we wrap the underlying technology with our own API. The idea being that you could plug any engine in back there and our front end APIs don't need to change. The API is very simple for facet support. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Tejas Kanani Il y a 12 années Nice Blog Ray !!!Faceted Search is cool !!And this blog covers lots of details regarding Search.Thanks for the post. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Jonas Yuan Il y a 12 années Nice post! Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Manish Kumar Gupta Il y a 12 années Your posts are always interesting and informative. Thanks for sharing this with everyone Ray!!! Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Dana Oredson Il y a 12 années That is a lot of information. I think I'm going to need to read it several times in order to hold it all in my head. Nice work. It looks like a lot of time and effort went into this post. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Nagendra Kumar Busam Il y a 12 années Really great detailing about faceted search feature. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Nagendra Kumar Busam Il y a 12 années Thanks All. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Nagendra Kumar Busam Il y a 12 années Thanks All. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Erin Caroll Il y a 12 années - Edité Ray I always have an eagerness for reading your posts and articles because I know all your articles are informative as well as knowledgeable.. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Siva Ranjani Erin Caroll Il y a 12 années Hi..i m new to liferay..i want to create search portlet using lucene..can u suggest steps for me..any sample code...Thank you.. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Firas BD Siva Ranjani Il y a 12 années Hi Ray, I wanna thank you about this post because it's so informative, but I have just a problem: when for example I am searching for a word, and results are in more than one page when I click to go to the next page (I click "More") I got error and no results appear .. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Firas BD Il y a 12 années @Siva, the best sample code is the search portlet itself: https://github.com/liferay/liferay-portal/blob/master/portal-web/docroot/html/portlet/search/main_search.jspf@Firas, is the error with the default search portlet or with custom code? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Firas BD Ray Augé Il y a 12 années @Ray Augé:the error is with the default search portlet in Liferay 6.1: and this is the error syntax:12:06:15,737 ERROR [IncludeTag:154] com.liferay.portal.kernel.search.SearchException: java.lang.IllegalArgumentException: fromIndex(20) > toIndex(5) at com.liferay.portal.kernel.search.FacetedSearcher.search(FacetedSearcher.java:106) at org.apache.jsp.html.portlet.search.search_jsp._jspService(search_jsp.java:1073) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:70) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) at com.liferay.taglib.util.IncludeTag.include(IncludeTag.java:323) at com.liferay.taglib.util.IncludeTag._doInclude(IncludeTag.java:418) at com.liferay.taglib.util.IncludeTag.doEndTag(IncludeTag.java:92)Caused by: java.lang.IllegalArgumentException: fromIndex(20) > toIndex(5) at java.util.SubList.<init>(AbstractList.java:604) at java.util.RandomAccessSubList.<init>(AbstractList.java:758) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Firas BD Il y a 12 années Can you file a ticket for this which outlines the exact steps you used to reproduce it? I'll take a look as soon as I get a chance. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Firas BD Ray Augé Il y a 12 années @ Ray:http://issues.liferay.com/browse/LPS-26227 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Vlad Kuzmyk Firas BD Il y a 12 années Hi Ray, I'm new to Liferay and need your advise. I've created a hook to a search portlet and have a couple of questions: 1. The start page is view.jsp and conains only <liferay-ui:search />. how would I bypass it so it would go directly to main_search.jsp?2. In my Document library I have categories Monthly Reports and Quarterly Reports. I want to place two links(like facets) with category names and when user clicks it would process the search only for selected category. How would you suggest to approach this task? Or maybe i need to create a custom search portlet based on a search portlet. Is it a good way to copy all the code from custom portlet into my portlet and modify it?Thank you in advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Suyash Madhusudan Bhalekar Firas BD Il y a 10 années Hi,Any progress on this. I have modified liferay's default Blog portlet via EXT to meet up my requirement.In control panel when I click on Blogs portlet and try to search for a Blog with say "test" then I can see the list of Blogs with proper pagination.For example , for 44 entries of corresponding Blogs I can see 3 pages i.e 4 links:1 2 3 NextBut when I follow same step for my customized Blog portlet then for same results I can see 5 links:1 2 3 4 NextNow when I click on 4, no display appears with backend error saying :java.lang.IllegalArgumentException: fromIndex(60) > toIndex(44)Can anybody help me to find the exact cause. Thanks Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Suyash Madhusudan Bhalekar Firas BD Il y a 10 années Hi,Any progress on this. I have modified liferay's default Blog portlet via EXT to meet up my requirement.In control panel when I click on Blogs portlet and try to search for a Blog with say "test" then I can see the list of Blogs with proper pagination.For example , for 44 entries of corresponding Blogs I can see 3 pages i.e 4 links:1 2 3 NextBut when I follow same step for my customized Blog portlet then for same results I can see 5 links:1 2 3 4 NextNow when I click on 4, no display appears with backend error saying :java.lang.IllegalArgumentException: fromIndex(60) > toIndex(44)Can anybody help me to find the exact cause. Thanks Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Siva Ranjani Erin Caroll Il y a 12 années Hi..i m new to liferay..i want to create search portlet using lucene..can u suggest steps for me..any sample code...Thank you.. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Firas BD Siva Ranjani Il y a 12 années Hi Ray, I wanna thank you about this post because it's so informative, but I have just a problem: when for example I am searching for a word, and results are in more than one page when I click to go to the next page (I click "More") I got error and no results appear .. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Firas BD Il y a 12 années @Siva, the best sample code is the search portlet itself: https://github.com/liferay/liferay-portal/blob/master/portal-web/docroot/html/portlet/search/main_search.jspf@Firas, is the error with the default search portlet or with custom code? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Firas BD Ray Augé Il y a 12 années @Ray Augé:the error is with the default search portlet in Liferay 6.1: and this is the error syntax:12:06:15,737 ERROR [IncludeTag:154] com.liferay.portal.kernel.search.SearchException: java.lang.IllegalArgumentException: fromIndex(20) > toIndex(5) at com.liferay.portal.kernel.search.FacetedSearcher.search(FacetedSearcher.java:106) at org.apache.jsp.html.portlet.search.search_jsp._jspService(search_jsp.java:1073) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:70) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) at com.liferay.taglib.util.IncludeTag.include(IncludeTag.java:323) at com.liferay.taglib.util.IncludeTag._doInclude(IncludeTag.java:418) at com.liferay.taglib.util.IncludeTag.doEndTag(IncludeTag.java:92)Caused by: java.lang.IllegalArgumentException: fromIndex(20) > toIndex(5) at java.util.SubList.<init>(AbstractList.java:604) at java.util.RandomAccessSubList.<init>(AbstractList.java:758) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Firas BD Il y a 12 années Can you file a ticket for this which outlines the exact steps you used to reproduce it? I'll take a look as soon as I get a chance. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Firas BD Ray Augé Il y a 12 années @ Ray:http://issues.liferay.com/browse/LPS-26227 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Vlad Kuzmyk Firas BD Il y a 12 années Hi Ray, I'm new to Liferay and need your advise. I've created a hook to a search portlet and have a couple of questions: 1. The start page is view.jsp and conains only <liferay-ui:search />. how would I bypass it so it would go directly to main_search.jsp?2. In my Document library I have categories Monthly Reports and Quarterly Reports. I want to place two links(like facets) with category names and when user clicks it would process the search only for selected category. How would you suggest to approach this task? Or maybe i need to create a custom search portlet based on a search portlet. Is it a good way to copy all the code from custom portlet into my portlet and modify it?Thank you in advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Suyash Madhusudan Bhalekar Firas BD Il y a 10 années Hi,Any progress on this. I have modified liferay's default Blog portlet via EXT to meet up my requirement.In control panel when I click on Blogs portlet and try to search for a Blog with say "test" then I can see the list of Blogs with proper pagination.For example , for 44 entries of corresponding Blogs I can see 3 pages i.e 4 links:1 2 3 NextBut when I follow same step for my customized Blog portlet then for same results I can see 5 links:1 2 3 4 NextNow when I click on 4, no display appears with backend error saying :java.lang.IllegalArgumentException: fromIndex(60) > toIndex(44)Can anybody help me to find the exact cause. Thanks Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Suyash Madhusudan Bhalekar Firas BD Il y a 10 années Hi,Any progress on this. I have modified liferay's default Blog portlet via EXT to meet up my requirement.In control panel when I click on Blogs portlet and try to search for a Blog with say "test" then I can see the list of Blogs with proper pagination.For example , for 44 entries of corresponding Blogs I can see 3 pages i.e 4 links:1 2 3 NextBut when I follow same step for my customized Blog portlet then for same results I can see 5 links:1 2 3 4 NextNow when I click on 4, no display appears with backend error saying :java.lang.IllegalArgumentException: fromIndex(60) > toIndex(44)Can anybody help me to find the exact cause. Thanks Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Firas BD Siva Ranjani Il y a 12 années Hi Ray, I wanna thank you about this post because it's so informative, but I have just a problem: when for example I am searching for a word, and results are in more than one page when I click to go to the next page (I click "More") I got error and no results appear .. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Firas BD Il y a 12 années @Siva, the best sample code is the search portlet itself: https://github.com/liferay/liferay-portal/blob/master/portal-web/docroot/html/portlet/search/main_search.jspf@Firas, is the error with the default search portlet or with custom code? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Firas BD Ray Augé Il y a 12 années @Ray Augé:the error is with the default search portlet in Liferay 6.1: and this is the error syntax:12:06:15,737 ERROR [IncludeTag:154] com.liferay.portal.kernel.search.SearchException: java.lang.IllegalArgumentException: fromIndex(20) > toIndex(5) at com.liferay.portal.kernel.search.FacetedSearcher.search(FacetedSearcher.java:106) at org.apache.jsp.html.portlet.search.search_jsp._jspService(search_jsp.java:1073) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:70) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) at com.liferay.taglib.util.IncludeTag.include(IncludeTag.java:323) at com.liferay.taglib.util.IncludeTag._doInclude(IncludeTag.java:418) at com.liferay.taglib.util.IncludeTag.doEndTag(IncludeTag.java:92)Caused by: java.lang.IllegalArgumentException: fromIndex(20) > toIndex(5) at java.util.SubList.<init>(AbstractList.java:604) at java.util.RandomAccessSubList.<init>(AbstractList.java:758) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Firas BD Il y a 12 années Can you file a ticket for this which outlines the exact steps you used to reproduce it? I'll take a look as soon as I get a chance. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Firas BD Ray Augé Il y a 12 années @ Ray:http://issues.liferay.com/browse/LPS-26227 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Vlad Kuzmyk Firas BD Il y a 12 années Hi Ray, I'm new to Liferay and need your advise. I've created a hook to a search portlet and have a couple of questions: 1. The start page is view.jsp and conains only <liferay-ui:search />. how would I bypass it so it would go directly to main_search.jsp?2. In my Document library I have categories Monthly Reports and Quarterly Reports. I want to place two links(like facets) with category names and when user clicks it would process the search only for selected category. How would you suggest to approach this task? Or maybe i need to create a custom search portlet based on a search portlet. Is it a good way to copy all the code from custom portlet into my portlet and modify it?Thank you in advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Suyash Madhusudan Bhalekar Firas BD Il y a 10 années Hi,Any progress on this. I have modified liferay's default Blog portlet via EXT to meet up my requirement.In control panel when I click on Blogs portlet and try to search for a Blog with say "test" then I can see the list of Blogs with proper pagination.For example , for 44 entries of corresponding Blogs I can see 3 pages i.e 4 links:1 2 3 NextBut when I follow same step for my customized Blog portlet then for same results I can see 5 links:1 2 3 4 NextNow when I click on 4, no display appears with backend error saying :java.lang.IllegalArgumentException: fromIndex(60) > toIndex(44)Can anybody help me to find the exact cause. Thanks Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Suyash Madhusudan Bhalekar Firas BD Il y a 10 années Hi,Any progress on this. I have modified liferay's default Blog portlet via EXT to meet up my requirement.In control panel when I click on Blogs portlet and try to search for a Blog with say "test" then I can see the list of Blogs with proper pagination.For example , for 44 entries of corresponding Blogs I can see 3 pages i.e 4 links:1 2 3 NextBut when I follow same step for my customized Blog portlet then for same results I can see 5 links:1 2 3 4 NextNow when I click on 4, no display appears with backend error saying :java.lang.IllegalArgumentException: fromIndex(60) > toIndex(44)Can anybody help me to find the exact cause. Thanks Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Firas BD Il y a 12 années @Siva, the best sample code is the search portlet itself: https://github.com/liferay/liferay-portal/blob/master/portal-web/docroot/html/portlet/search/main_search.jspf@Firas, is the error with the default search portlet or with custom code? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Firas BD Ray Augé Il y a 12 années @Ray Augé:the error is with the default search portlet in Liferay 6.1: and this is the error syntax:12:06:15,737 ERROR [IncludeTag:154] com.liferay.portal.kernel.search.SearchException: java.lang.IllegalArgumentException: fromIndex(20) > toIndex(5) at com.liferay.portal.kernel.search.FacetedSearcher.search(FacetedSearcher.java:106) at org.apache.jsp.html.portlet.search.search_jsp._jspService(search_jsp.java:1073) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:70) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) at com.liferay.taglib.util.IncludeTag.include(IncludeTag.java:323) at com.liferay.taglib.util.IncludeTag._doInclude(IncludeTag.java:418) at com.liferay.taglib.util.IncludeTag.doEndTag(IncludeTag.java:92)Caused by: java.lang.IllegalArgumentException: fromIndex(20) > toIndex(5) at java.util.SubList.<init>(AbstractList.java:604) at java.util.RandomAccessSubList.<init>(AbstractList.java:758) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Firas BD Il y a 12 années Can you file a ticket for this which outlines the exact steps you used to reproduce it? I'll take a look as soon as I get a chance. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Firas BD Ray Augé Il y a 12 années @ Ray:http://issues.liferay.com/browse/LPS-26227 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Vlad Kuzmyk Firas BD Il y a 12 années Hi Ray, I'm new to Liferay and need your advise. I've created a hook to a search portlet and have a couple of questions: 1. The start page is view.jsp and conains only <liferay-ui:search />. how would I bypass it so it would go directly to main_search.jsp?2. In my Document library I have categories Monthly Reports and Quarterly Reports. I want to place two links(like facets) with category names and when user clicks it would process the search only for selected category. How would you suggest to approach this task? Or maybe i need to create a custom search portlet based on a search portlet. Is it a good way to copy all the code from custom portlet into my portlet and modify it?Thank you in advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Suyash Madhusudan Bhalekar Firas BD Il y a 10 années Hi,Any progress on this. I have modified liferay's default Blog portlet via EXT to meet up my requirement.In control panel when I click on Blogs portlet and try to search for a Blog with say "test" then I can see the list of Blogs with proper pagination.For example , for 44 entries of corresponding Blogs I can see 3 pages i.e 4 links:1 2 3 NextBut when I follow same step for my customized Blog portlet then for same results I can see 5 links:1 2 3 4 NextNow when I click on 4, no display appears with backend error saying :java.lang.IllegalArgumentException: fromIndex(60) > toIndex(44)Can anybody help me to find the exact cause. Thanks Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Suyash Madhusudan Bhalekar Firas BD Il y a 10 années Hi,Any progress on this. I have modified liferay's default Blog portlet via EXT to meet up my requirement.In control panel when I click on Blogs portlet and try to search for a Blog with say "test" then I can see the list of Blogs with proper pagination.For example , for 44 entries of corresponding Blogs I can see 3 pages i.e 4 links:1 2 3 NextBut when I follow same step for my customized Blog portlet then for same results I can see 5 links:1 2 3 4 NextNow when I click on 4, no display appears with backend error saying :java.lang.IllegalArgumentException: fromIndex(60) > toIndex(44)Can anybody help me to find the exact cause. Thanks Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Firas BD Ray Augé Il y a 12 années @Ray Augé:the error is with the default search portlet in Liferay 6.1: and this is the error syntax:12:06:15,737 ERROR [IncludeTag:154] com.liferay.portal.kernel.search.SearchException: java.lang.IllegalArgumentException: fromIndex(20) > toIndex(5) at com.liferay.portal.kernel.search.FacetedSearcher.search(FacetedSearcher.java:106) at org.apache.jsp.html.portlet.search.search_jsp._jspService(search_jsp.java:1073) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:70) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) at com.liferay.taglib.util.IncludeTag.include(IncludeTag.java:323) at com.liferay.taglib.util.IncludeTag._doInclude(IncludeTag.java:418) at com.liferay.taglib.util.IncludeTag.doEndTag(IncludeTag.java:92)Caused by: java.lang.IllegalArgumentException: fromIndex(20) > toIndex(5) at java.util.SubList.<init>(AbstractList.java:604) at java.util.RandomAccessSubList.<init>(AbstractList.java:758) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Firas BD Il y a 12 années Can you file a ticket for this which outlines the exact steps you used to reproduce it? I'll take a look as soon as I get a chance. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Firas BD Ray Augé Il y a 12 années @ Ray:http://issues.liferay.com/browse/LPS-26227 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Vlad Kuzmyk Firas BD Il y a 12 années Hi Ray, I'm new to Liferay and need your advise. I've created a hook to a search portlet and have a couple of questions: 1. The start page is view.jsp and conains only <liferay-ui:search />. how would I bypass it so it would go directly to main_search.jsp?2. In my Document library I have categories Monthly Reports and Quarterly Reports. I want to place two links(like facets) with category names and when user clicks it would process the search only for selected category. How would you suggest to approach this task? Or maybe i need to create a custom search portlet based on a search portlet. Is it a good way to copy all the code from custom portlet into my portlet and modify it?Thank you in advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Suyash Madhusudan Bhalekar Firas BD Il y a 10 années Hi,Any progress on this. I have modified liferay's default Blog portlet via EXT to meet up my requirement.In control panel when I click on Blogs portlet and try to search for a Blog with say "test" then I can see the list of Blogs with proper pagination.For example , for 44 entries of corresponding Blogs I can see 3 pages i.e 4 links:1 2 3 NextBut when I follow same step for my customized Blog portlet then for same results I can see 5 links:1 2 3 4 NextNow when I click on 4, no display appears with backend error saying :java.lang.IllegalArgumentException: fromIndex(60) > toIndex(44)Can anybody help me to find the exact cause. Thanks Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Suyash Madhusudan Bhalekar Firas BD Il y a 10 années Hi,Any progress on this. I have modified liferay's default Blog portlet via EXT to meet up my requirement.In control panel when I click on Blogs portlet and try to search for a Blog with say "test" then I can see the list of Blogs with proper pagination.For example , for 44 entries of corresponding Blogs I can see 3 pages i.e 4 links:1 2 3 NextBut when I follow same step for my customized Blog portlet then for same results I can see 5 links:1 2 3 4 NextNow when I click on 4, no display appears with backend error saying :java.lang.IllegalArgumentException: fromIndex(60) > toIndex(44)Can anybody help me to find the exact cause. Thanks Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Firas BD Il y a 12 années Can you file a ticket for this which outlines the exact steps you used to reproduce it? I'll take a look as soon as I get a chance. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Firas BD Ray Augé Il y a 12 années @ Ray:http://issues.liferay.com/browse/LPS-26227 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Vlad Kuzmyk Firas BD Il y a 12 années Hi Ray, I'm new to Liferay and need your advise. I've created a hook to a search portlet and have a couple of questions: 1. The start page is view.jsp and conains only <liferay-ui:search />. how would I bypass it so it would go directly to main_search.jsp?2. In my Document library I have categories Monthly Reports and Quarterly Reports. I want to place two links(like facets) with category names and when user clicks it would process the search only for selected category. How would you suggest to approach this task? Or maybe i need to create a custom search portlet based on a search portlet. Is it a good way to copy all the code from custom portlet into my portlet and modify it?Thank you in advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Firas BD Ray Augé Il y a 12 années @ Ray:http://issues.liferay.com/browse/LPS-26227 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Vlad Kuzmyk Firas BD Il y a 12 années Hi Ray, I'm new to Liferay and need your advise. I've created a hook to a search portlet and have a couple of questions: 1. The start page is view.jsp and conains only <liferay-ui:search />. how would I bypass it so it would go directly to main_search.jsp?2. In my Document library I have categories Monthly Reports and Quarterly Reports. I want to place two links(like facets) with category names and when user clicks it would process the search only for selected category. How would you suggest to approach this task? Or maybe i need to create a custom search portlet based on a search portlet. Is it a good way to copy all the code from custom portlet into my portlet and modify it?Thank you in advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Vlad Kuzmyk Firas BD Il y a 12 années Hi Ray, I'm new to Liferay and need your advise. I've created a hook to a search portlet and have a couple of questions: 1. The start page is view.jsp and conains only <liferay-ui:search />. how would I bypass it so it would go directly to main_search.jsp?2. In my Document library I have categories Monthly Reports and Quarterly Reports. I want to place two links(like facets) with category names and when user clicks it would process the search only for selected category. How would you suggest to approach this task? Or maybe i need to create a custom search portlet based on a search portlet. Is it a good way to copy all the code from custom portlet into my portlet and modify it?Thank you in advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Suyash Madhusudan Bhalekar Firas BD Il y a 10 années Hi,Any progress on this. I have modified liferay's default Blog portlet via EXT to meet up my requirement.In control panel when I click on Blogs portlet and try to search for a Blog with say "test" then I can see the list of Blogs with proper pagination.For example , for 44 entries of corresponding Blogs I can see 3 pages i.e 4 links:1 2 3 NextBut when I follow same step for my customized Blog portlet then for same results I can see 5 links:1 2 3 4 NextNow when I click on 4, no display appears with backend error saying :java.lang.IllegalArgumentException: fromIndex(60) > toIndex(44)Can anybody help me to find the exact cause. Thanks Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Suyash Madhusudan Bhalekar Firas BD Il y a 10 années Hi,Any progress on this. I have modified liferay's default Blog portlet via EXT to meet up my requirement.In control panel when I click on Blogs portlet and try to search for a Blog with say "test" then I can see the list of Blogs with proper pagination.For example , for 44 entries of corresponding Blogs I can see 3 pages i.e 4 links:1 2 3 NextBut when I follow same step for my customized Blog portlet then for same results I can see 5 links:1 2 3 4 NextNow when I click on 4, no display appears with backend error saying :java.lang.IllegalArgumentException: fromIndex(60) > toIndex(44)Can anybody help me to find the exact cause. Thanks Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Joseph Toman Il y a 12 années Nice post, and timely too. I was just about to implement search in a project I'm working on. A couple of questions: you said that proximity search and term boosting aren't supported. Is that just in the search portlet, or in the underlying API as well?Also, in the development part of the article your code refers to something called mainSearchContainer . What is it, and where'd you get it from? Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Joseph Toman Joseph Toman Il y a 12 années Never mind about that second question, found it in main_search.jspf . Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Joseph Toman Joseph Toman Il y a 12 années Never mind about that second question, found it in main_search.jspf . Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Jonathan Lloyd Il y a 12 années Hi Ray,Thanks for the article. I'm trying to get a faceted search to work using an "AND" condition for the assetCategoryIds field, however it never returns any results. I enabled debug output on both the SearchEngineUtils and LuceneIndexSearcherImpl classes and the query string output is "+(+(companyId:10154) +(assetCategoryIds11703 AND 11804)) +createDate:[19700101000000 TO 20121231235959] +((+(entryClassName:com.liferay.portlet.journal.model.JournalArticle) +(status:0))))".To test the lucene syntax, I also used the code below to produce a Query object and it works fine. Do you have any ideas on what might be happening? Thanks in advance for the help.Query query = StringQueryFactoryUtil.create("+(+(companyId:10154) +(assetCategoryIds11703 AND 11804)) +createDate:[19700101000000 TO 20121231235959] +((+(entryClassName:com.liferay.portlet.journal.model.JournalArticle) +(status:0))))"); Hits hits = SearchEngineUtil.search(searchContext.getCompanyId(), query, QueryUtil.ALL_POS, QueryUtil.ALL_POS); Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Jonathan Lloyd Il y a 12 années Try+(+assetCategoryIds:11703 +assetCategoryIds:11804)it's easier on the parser and means the same thing. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Ray Augé Il y a 12 années AND should be used more specifically like so:assetCategoryIds:11703 AND assetCategoryIds:11804 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Jonathan Lloyd Ray Augé Il y a 12 années Hi Ray,Thanks for the quick reply! I have used "+" instead of "AND", but still get the same result.I'm not very familiar with lucene, but it seems like the problem is that based on the way I am setting the attribute values in the SearchContext object and have the facet defined, the objects that build the query string will only output the "assetCategoryIds" text just once. For example, the query string would look like +(assetCategoryIds:+11703 +11804) instead of +(+assetCategoryIds:11703 +assetCategoryIds:11804).As noted above, I'm using the SearchContext object to set the attributes of the assetCategoryIds field, but I don't see a way to include multiple arguments into that one field with out concatenating them together myself. Something like the code below. I've also tried setting the andSearch property on the SearchContext with no success.searchContext.setAttribute("assetCategoryIds", convertCategoryIdsToAndString(categoryIds)); Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Jonathan Lloyd Il y a 12 années Try+(+assetCategoryIds:11703 +assetCategoryIds:11804)it's easier on the parser and means the same thing. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Ray Augé Il y a 12 années AND should be used more specifically like so:assetCategoryIds:11703 AND assetCategoryIds:11804 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Jonathan Lloyd Ray Augé Il y a 12 années Hi Ray,Thanks for the quick reply! I have used "+" instead of "AND", but still get the same result.I'm not very familiar with lucene, but it seems like the problem is that based on the way I am setting the attribute values in the SearchContext object and have the facet defined, the objects that build the query string will only output the "assetCategoryIds" text just once. For example, the query string would look like +(assetCategoryIds:+11703 +11804) instead of +(+assetCategoryIds:11703 +assetCategoryIds:11804).As noted above, I'm using the SearchContext object to set the attributes of the assetCategoryIds field, but I don't see a way to include multiple arguments into that one field with out concatenating them together myself. Something like the code below. I've also tried setting the andSearch property on the SearchContext with no success.searchContext.setAttribute("assetCategoryIds", convertCategoryIdsToAndString(categoryIds)); Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Ray Augé Il y a 12 années AND should be used more specifically like so:assetCategoryIds:11703 AND assetCategoryIds:11804 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Jonathan Lloyd Ray Augé Il y a 12 années Hi Ray,Thanks for the quick reply! I have used "+" instead of "AND", but still get the same result.I'm not very familiar with lucene, but it seems like the problem is that based on the way I am setting the attribute values in the SearchContext object and have the facet defined, the objects that build the query string will only output the "assetCategoryIds" text just once. For example, the query string would look like +(assetCategoryIds:+11703 +11804) instead of +(+assetCategoryIds:11703 +assetCategoryIds:11804).As noted above, I'm using the SearchContext object to set the attributes of the assetCategoryIds field, but I don't see a way to include multiple arguments into that one field with out concatenating them together myself. Something like the code below. I've also tried setting the andSearch property on the SearchContext with no success.searchContext.setAttribute("assetCategoryIds", convertCategoryIdsToAndString(categoryIds)); Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Jonathan Lloyd Ray Augé Il y a 12 années Hi Ray,Thanks for the quick reply! I have used "+" instead of "AND", but still get the same result.I'm not very familiar with lucene, but it seems like the problem is that based on the way I am setting the attribute values in the SearchContext object and have the facet defined, the objects that build the query string will only output the "assetCategoryIds" text just once. For example, the query string would look like +(assetCategoryIds:+11703 +11804) instead of +(+assetCategoryIds:11703 +assetCategoryIds:11804).As noted above, I'm using the SearchContext object to set the attributes of the assetCategoryIds field, but I don't see a way to include multiple arguments into that one field with out concatenating them together myself. Something like the code below. I've also tried setting the andSearch property on the SearchContext with no success.searchContext.setAttribute("assetCategoryIds", convertCategoryIdsToAndString(categoryIds)); Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Dave Weitzel Il y a 12 années Ray, just found this post after looking into Search results and facets in more detail for our customization work.I have one question though? can we get the facet tags and categories localized?(displayed in the facets/asset_tags.jsp as well as under relevant search item).When you have multi-lingual site it looks odd if the categories are in the base locale for the site. The categories are translated when displayed within the relevant portlet (eg document library).I understand these are now facets in a search engine result list but the user isnt going to understand that, Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Salvador Baena Il y a 11 années Hi Ray,I have a problem with create pre-configured to search only returns That tag "noticia"The search returns all the content I type "com.liferay.portlet.journal.model.JournalArticle"My code is this:{facets: [{className: 'com.liferay.portal.kernel.search.facet.AssetEntriesFacet', data: {frequencyThreshold: 1, values: ['com.liferay.portlet.journal.model.JournalArticle']}, displayStyle: 'asset_entries', fieldName: 'entryClassName', label: 'asset-type', order: 'OrderHitsDesc', static: false, weight: 1.5},{className: 'com.liferay.portal.kernel.search.facet.MultiValueFacet', data: {frequencyThreshold: 1, values: ['noticia']}, displayStyle: 'asset_entries', fieldName: 'assetTagNames', label: 'tag', order: 'OrderHitsDesc', static: false, weight: 1.5}, {className: 'com.liferay.portal.kernel.search.facet.MultiValueFacet', data: {displayStyle: 'list', frequencyThreshold: 1, maxTerms: 10, showAssetCount: true}, displayStyle: 'asset_tags', fieldName: 'assetTagNames', label: 'tag', order: 'OrderHitsDesc', static: false, weight: 1.4},{className: 'com.liferay.portal.kernel.search.facet.MultiValueFacet', data: {displayStyle: 'list', frequencyThreshold: 1, maxTerms: 10, showAssetCount: true}, displayStyle: 'asset_tags', fieldName: 'assetCategoryNames', label: 'category', order: 'OrderHitsDesc', static: false, weight: 1.3},{className: 'com.liferay.portal.kernel.search.facet.RangeFacet', data: {frequencyThreshold: 1, ranges: [{label:'modified', range:'[19700101000000 TO *]'}]}, displayStyle: 'modified', fieldName: 'modified', label: 'modified', order: 'OrderHitsDesc', static: false, weight: 1.1}]}Thank you very much.Best regards. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Amit Doshi Salvador Baena Il y a 11 années It is possible that Liferay can index content of PDF documents so it can show up in the search ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Amit Doshi Il y a 11 années @Salvador, make your "noticia" facet static since you are forcing passing a single value.@Amit, Liferay does it's best attempt to index PDFs automatically (it can't get content from a PDF filled only with scanned images for instance). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Florencia Hernández Ray Augé Il y a 11 années Wow, incredible article! I would like to know what is the best way to let the user filter by asset type before hand, before perfoming the search. For example, the user could enter the word "water", and then, from a checkboxes list, choose the asset type to look into, for example, Blog entries. And that would search the word water in blog entries only. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Florencia Hernández Il y a 11 années It's true that the search portlet doesn't start in the mode having performed a default search (a search with no keywords). If it did, then you would see all the facets available, and then you would see and could select the asset type you want to search within and then add keywords. I think that addresses the scenario you are asking about. Perhaps it would be possible to add that behavior is a configuration option of the portlet. It wouldn't be hard. Can you make a feature request in JIRA (http://issues.liferay.com)? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Florencia Hernández Ray Augé Il y a 11 années Thanks Ray for the prompt reply. I just added a request: http://issues.liferay.com/browse/LPS-27514 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Salvador Baena Florencia Hernández Il y a 11 années Thank you very much Ray. Solved.Facet to filter by tag:{facets: [{className: 'com.liferay.portal.kernel.search.facet.AssetEntriesFacet',data: {frequencyThreshold: 1,values: ['com.liferay.portlet.journal.model.JournalArticle']},displayStyle: 'asset_entries',fieldName: 'entryClassName',label: 'asset-type',order: 'OrderHitsDesc',static: false,weight: 1.5},{className: 'com.liferay.portal.kernel.search.facet.MultiValueFacet',data: {frequencyThreshold: 1,values: ['noticia']},displayStyle: 'asset_entries',fieldName: 'assetTagNames',label: 'tag',order: 'OrderHitsDesc',static: true,weight: 1.5}]}Best regards Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Amit Doshi Salvador Baena Il y a 11 années It is possible that Liferay can index content of PDF documents so it can show up in the search ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Amit Doshi Il y a 11 années @Salvador, make your "noticia" facet static since you are forcing passing a single value.@Amit, Liferay does it's best attempt to index PDFs automatically (it can't get content from a PDF filled only with scanned images for instance). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Florencia Hernández Ray Augé Il y a 11 années Wow, incredible article! I would like to know what is the best way to let the user filter by asset type before hand, before perfoming the search. For example, the user could enter the word "water", and then, from a checkboxes list, choose the asset type to look into, for example, Blog entries. And that would search the word water in blog entries only. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Florencia Hernández Il y a 11 années It's true that the search portlet doesn't start in the mode having performed a default search (a search with no keywords). If it did, then you would see all the facets available, and then you would see and could select the asset type you want to search within and then add keywords. I think that addresses the scenario you are asking about. Perhaps it would be possible to add that behavior is a configuration option of the portlet. It wouldn't be hard. Can you make a feature request in JIRA (http://issues.liferay.com)? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Florencia Hernández Ray Augé Il y a 11 années Thanks Ray for the prompt reply. I just added a request: http://issues.liferay.com/browse/LPS-27514 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Salvador Baena Florencia Hernández Il y a 11 années Thank you very much Ray. Solved.Facet to filter by tag:{facets: [{className: 'com.liferay.portal.kernel.search.facet.AssetEntriesFacet',data: {frequencyThreshold: 1,values: ['com.liferay.portlet.journal.model.JournalArticle']},displayStyle: 'asset_entries',fieldName: 'entryClassName',label: 'asset-type',order: 'OrderHitsDesc',static: false,weight: 1.5},{className: 'com.liferay.portal.kernel.search.facet.MultiValueFacet',data: {frequencyThreshold: 1,values: ['noticia']},displayStyle: 'asset_entries',fieldName: 'assetTagNames',label: 'tag',order: 'OrderHitsDesc',static: true,weight: 1.5}]}Best regards Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Amit Doshi Il y a 11 années @Salvador, make your "noticia" facet static since you are forcing passing a single value.@Amit, Liferay does it's best attempt to index PDFs automatically (it can't get content from a PDF filled only with scanned images for instance). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Florencia Hernández Ray Augé Il y a 11 années Wow, incredible article! I would like to know what is the best way to let the user filter by asset type before hand, before perfoming the search. For example, the user could enter the word "water", and then, from a checkboxes list, choose the asset type to look into, for example, Blog entries. And that would search the word water in blog entries only. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Florencia Hernández Il y a 11 années It's true that the search portlet doesn't start in the mode having performed a default search (a search with no keywords). If it did, then you would see all the facets available, and then you would see and could select the asset type you want to search within and then add keywords. I think that addresses the scenario you are asking about. Perhaps it would be possible to add that behavior is a configuration option of the portlet. It wouldn't be hard. Can you make a feature request in JIRA (http://issues.liferay.com)? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Florencia Hernández Ray Augé Il y a 11 années Thanks Ray for the prompt reply. I just added a request: http://issues.liferay.com/browse/LPS-27514 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Salvador Baena Florencia Hernández Il y a 11 années Thank you very much Ray. Solved.Facet to filter by tag:{facets: [{className: 'com.liferay.portal.kernel.search.facet.AssetEntriesFacet',data: {frequencyThreshold: 1,values: ['com.liferay.portlet.journal.model.JournalArticle']},displayStyle: 'asset_entries',fieldName: 'entryClassName',label: 'asset-type',order: 'OrderHitsDesc',static: false,weight: 1.5},{className: 'com.liferay.portal.kernel.search.facet.MultiValueFacet',data: {frequencyThreshold: 1,values: ['noticia']},displayStyle: 'asset_entries',fieldName: 'assetTagNames',label: 'tag',order: 'OrderHitsDesc',static: true,weight: 1.5}]}Best regards Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Florencia Hernández Ray Augé Il y a 11 années Wow, incredible article! I would like to know what is the best way to let the user filter by asset type before hand, before perfoming the search. For example, the user could enter the word "water", and then, from a checkboxes list, choose the asset type to look into, for example, Blog entries. And that would search the word water in blog entries only. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Florencia Hernández Il y a 11 années It's true that the search portlet doesn't start in the mode having performed a default search (a search with no keywords). If it did, then you would see all the facets available, and then you would see and could select the asset type you want to search within and then add keywords. I think that addresses the scenario you are asking about. Perhaps it would be possible to add that behavior is a configuration option of the portlet. It wouldn't be hard. Can you make a feature request in JIRA (http://issues.liferay.com)? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Florencia Hernández Ray Augé Il y a 11 années Thanks Ray for the prompt reply. I just added a request: http://issues.liferay.com/browse/LPS-27514 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Salvador Baena Florencia Hernández Il y a 11 années Thank you very much Ray. Solved.Facet to filter by tag:{facets: [{className: 'com.liferay.portal.kernel.search.facet.AssetEntriesFacet',data: {frequencyThreshold: 1,values: ['com.liferay.portlet.journal.model.JournalArticle']},displayStyle: 'asset_entries',fieldName: 'entryClassName',label: 'asset-type',order: 'OrderHitsDesc',static: false,weight: 1.5},{className: 'com.liferay.portal.kernel.search.facet.MultiValueFacet',data: {frequencyThreshold: 1,values: ['noticia']},displayStyle: 'asset_entries',fieldName: 'assetTagNames',label: 'tag',order: 'OrderHitsDesc',static: true,weight: 1.5}]}Best regards Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Florencia Hernández Il y a 11 années It's true that the search portlet doesn't start in the mode having performed a default search (a search with no keywords). If it did, then you would see all the facets available, and then you would see and could select the asset type you want to search within and then add keywords. I think that addresses the scenario you are asking about. Perhaps it would be possible to add that behavior is a configuration option of the portlet. It wouldn't be hard. Can you make a feature request in JIRA (http://issues.liferay.com)? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Florencia Hernández Ray Augé Il y a 11 années Thanks Ray for the prompt reply. I just added a request: http://issues.liferay.com/browse/LPS-27514 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Salvador Baena Florencia Hernández Il y a 11 années Thank you very much Ray. Solved.Facet to filter by tag:{facets: [{className: 'com.liferay.portal.kernel.search.facet.AssetEntriesFacet',data: {frequencyThreshold: 1,values: ['com.liferay.portlet.journal.model.JournalArticle']},displayStyle: 'asset_entries',fieldName: 'entryClassName',label: 'asset-type',order: 'OrderHitsDesc',static: false,weight: 1.5},{className: 'com.liferay.portal.kernel.search.facet.MultiValueFacet',data: {frequencyThreshold: 1,values: ['noticia']},displayStyle: 'asset_entries',fieldName: 'assetTagNames',label: 'tag',order: 'OrderHitsDesc',static: true,weight: 1.5}]}Best regards Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Florencia Hernández Ray Augé Il y a 11 années Thanks Ray for the prompt reply. I just added a request: http://issues.liferay.com/browse/LPS-27514 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Salvador Baena Florencia Hernández Il y a 11 années Thank you very much Ray. Solved.Facet to filter by tag:{facets: [{className: 'com.liferay.portal.kernel.search.facet.AssetEntriesFacet',data: {frequencyThreshold: 1,values: ['com.liferay.portlet.journal.model.JournalArticle']},displayStyle: 'asset_entries',fieldName: 'entryClassName',label: 'asset-type',order: 'OrderHitsDesc',static: false,weight: 1.5},{className: 'com.liferay.portal.kernel.search.facet.MultiValueFacet',data: {frequencyThreshold: 1,values: ['noticia']},displayStyle: 'asset_entries',fieldName: 'assetTagNames',label: 'tag',order: 'OrderHitsDesc',static: true,weight: 1.5}]}Best regards Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Salvador Baena Florencia Hernández Il y a 11 années Thank you very much Ray. Solved.Facet to filter by tag:{facets: [{className: 'com.liferay.portal.kernel.search.facet.AssetEntriesFacet',data: {frequencyThreshold: 1,values: ['com.liferay.portlet.journal.model.JournalArticle']},displayStyle: 'asset_entries',fieldName: 'entryClassName',label: 'asset-type',order: 'OrderHitsDesc',static: false,weight: 1.5},{className: 'com.liferay.portal.kernel.search.facet.MultiValueFacet',data: {frequencyThreshold: 1,values: ['noticia']},displayStyle: 'asset_entries',fieldName: 'assetTagNames',label: 'tag',order: 'OrderHitsDesc',static: true,weight: 1.5}]}Best regards Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
ASI Register Il y a 11 années Hi,I would like to know how drill down can be allowed... Even I select a tag in result view, each tag is replaced when I choose another one.Thanks for your answer Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé ASI Register Il y a 11 années Yeah, this was deferred to a later version. Technically the backend code can handle any number of arguments per facet, but in order to get a first cut, simple to use UI we opted to limit it to only a single argument per facet. BUT, since it's only a limitation from the UI, you can easily create custom facet view template (jsp hook) that overrides the default and allows multiple selection per facet.Can you open a feature request so we can track this for future versions? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I would like to know what is the best way to add a custom facet implementation.I am trying to implement drilled-down search, and I need to produce an AND query for MultiValueFacet. Looking at source, I believe that this can't be done, because termQuery has booleanClause hardcoded (added request http://issues.liferay.com/browse/LPS-28228).Thanks in advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo S Il y a 11 années Facets are for single fields only (both Bobo [our lucene facet impl] and Solr only have APIs for collecting facet on single fields at a time). But if you need to refine the underlying query so that it reflects some custom logic, then you can do that by passing an array of BooleanClauses to the searchContext before calling search in the FacetedSearcher.SearchContext searchContext = .. // setup the contextIndexer indexer = FacetedSearcher.getInstance();searchContext.setBooleanClauses(BooleanClause[] booleanClauses)Hits hits = indexer.search(searchContext);Note: An AND is simply a MUST "Occur" clause around a number of other Query instances (or Clauses). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Ray Augé Il y a 11 années BTW, the "Multi" in the name MultiValueFacet is not to reflect how it is used with respect to the number of fields to collect data from, but rather to indicate the "type" of field it can be used with. In this case fields with "multiple" values.In indexing engines, fields generally fall into one of two broad classes: - single value fields (like a number, fixed string token)- multi-value fields (like text, or arrays of values)There are certain types of operations that can take place on each of those two classes of fields. For instance, you can't do a Range query on a multi-value field. you generally can't sort a result set on a multi-value field, single value fields must generally be exact matches (setting aside regex matching obviously), etc. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Himanshu Modi Ray Augé Il y a 11 années Hi Ray,I have the requirements to pass multiple categories names while searching. But Faceted searcher is not giving the results for multiple categories.For example while I pass assetCategoryNames field value as comm separated (say topic2,COUNTRY). The full query that is built in FacetedSearcher.java class looks like ----"+(+(companyId:10154) +(assetCategoryNames:topic2 COUNTRY) +((+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksEntry)) (+(entryClassName:com.liferay.portlet.blogs.model.BlogsEntry)) (+(entryClassName:com.liferay.portlet.calendar.model.CalEvent)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFileEntry) +(status:0)) ..........".Above if you see the part of query---" (assetCategoryNames:topic2 COUNTRY) ", you will notice that category names are coming but there is no boolean operator added by the system. I have gone through all the above threads, I found ur comments but could not get it completely as what needs to be done to select multiple categories at one time while searching.If any booleanClause need to be set in serachContext then how and what it should be .Please let me know the solution if you are aware of this scenario. Thanks in advance,Himanshu Modi Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Himanshu Modi Himanshu Modi Il y a 11 années Typo--(assetCategoryNames:topic2 assetCategoryNames:COUNTRY) is the correct query I'm getting. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Himanshu Modi Il y a 11 années The correct way to do that would be by passing a set of additional BooleanClauses to the searchContext.setBooleanClauses(BooleanClause[] clauses) method just before making the search. Facets are not designed for doing filtering only for collecting metrics. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Hi Ray, is there any way to integrate a custom portlet into the asset entries facet ?My portlet has it's custom Indexer that is registered via liferay-portlet.xml and I added my model in the search-portlet's configuration. If I add an OpenSearch implementation the results are displayed at the bottom of the search, but I can't get it to work with the faceted search. What am I missing? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Kim A Kunc Il y a 11 années I figured it it out, my Indexer extends BaseIndexer but somehow not all keywords are set for the facet query to match my documents. I was missing fields "COMPANY_ID" and "GROUP_ID" that are only set in BaseIndexer if your model is an instance of "AuditedModel" which apparently my model class is not. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années Ok, great! I'm glad you managed to figure it out. Yes, AuditedModel is a helper interface around entities designed to support multi-tenancy.AuditedModel interface will be automatically added to your Model when the entity definition contains the fields: companyId, createDate, modifiedDate, userId, userName.Similarly, the GroupedModel interface provides support for scoping models to groups (a.k.a. Sites) and is applied if the entity is an AuditedModel + has the groupId field.There are several other automatically applied interfaces derived from entity columns, like workflow, attached, resourced, etc. Apparently this is a subject still in need of documentation. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Ray, thanks for your reply!What would think of a new feature in the service builder definition that would automatically create these audit fields i.e. a new property "auditedModel=true/false" ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé ASI Register Il y a 11 années Yeah, this was deferred to a later version. Technically the backend code can handle any number of arguments per facet, but in order to get a first cut, simple to use UI we opted to limit it to only a single argument per facet. BUT, since it's only a limitation from the UI, you can easily create custom facet view template (jsp hook) that overrides the default and allows multiple selection per facet.Can you open a feature request so we can track this for future versions? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I would like to know what is the best way to add a custom facet implementation.I am trying to implement drilled-down search, and I need to produce an AND query for MultiValueFacet. Looking at source, I believe that this can't be done, because termQuery has booleanClause hardcoded (added request http://issues.liferay.com/browse/LPS-28228).Thanks in advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo S Il y a 11 années Facets are for single fields only (both Bobo [our lucene facet impl] and Solr only have APIs for collecting facet on single fields at a time). But if you need to refine the underlying query so that it reflects some custom logic, then you can do that by passing an array of BooleanClauses to the searchContext before calling search in the FacetedSearcher.SearchContext searchContext = .. // setup the contextIndexer indexer = FacetedSearcher.getInstance();searchContext.setBooleanClauses(BooleanClause[] booleanClauses)Hits hits = indexer.search(searchContext);Note: An AND is simply a MUST "Occur" clause around a number of other Query instances (or Clauses). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Ray Augé Il y a 11 années BTW, the "Multi" in the name MultiValueFacet is not to reflect how it is used with respect to the number of fields to collect data from, but rather to indicate the "type" of field it can be used with. In this case fields with "multiple" values.In indexing engines, fields generally fall into one of two broad classes: - single value fields (like a number, fixed string token)- multi-value fields (like text, or arrays of values)There are certain types of operations that can take place on each of those two classes of fields. For instance, you can't do a Range query on a multi-value field. you generally can't sort a result set on a multi-value field, single value fields must generally be exact matches (setting aside regex matching obviously), etc. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Himanshu Modi Ray Augé Il y a 11 années Hi Ray,I have the requirements to pass multiple categories names while searching. But Faceted searcher is not giving the results for multiple categories.For example while I pass assetCategoryNames field value as comm separated (say topic2,COUNTRY). The full query that is built in FacetedSearcher.java class looks like ----"+(+(companyId:10154) +(assetCategoryNames:topic2 COUNTRY) +((+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksEntry)) (+(entryClassName:com.liferay.portlet.blogs.model.BlogsEntry)) (+(entryClassName:com.liferay.portlet.calendar.model.CalEvent)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFileEntry) +(status:0)) ..........".Above if you see the part of query---" (assetCategoryNames:topic2 COUNTRY) ", you will notice that category names are coming but there is no boolean operator added by the system. I have gone through all the above threads, I found ur comments but could not get it completely as what needs to be done to select multiple categories at one time while searching.If any booleanClause need to be set in serachContext then how and what it should be .Please let me know the solution if you are aware of this scenario. Thanks in advance,Himanshu Modi Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Himanshu Modi Himanshu Modi Il y a 11 années Typo--(assetCategoryNames:topic2 assetCategoryNames:COUNTRY) is the correct query I'm getting. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Himanshu Modi Il y a 11 années The correct way to do that would be by passing a set of additional BooleanClauses to the searchContext.setBooleanClauses(BooleanClause[] clauses) method just before making the search. Facets are not designed for doing filtering only for collecting metrics. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Hi Ray, is there any way to integrate a custom portlet into the asset entries facet ?My portlet has it's custom Indexer that is registered via liferay-portlet.xml and I added my model in the search-portlet's configuration. If I add an OpenSearch implementation the results are displayed at the bottom of the search, but I can't get it to work with the faceted search. What am I missing? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Kim A Kunc Il y a 11 années I figured it it out, my Indexer extends BaseIndexer but somehow not all keywords are set for the facet query to match my documents. I was missing fields "COMPANY_ID" and "GROUP_ID" that are only set in BaseIndexer if your model is an instance of "AuditedModel" which apparently my model class is not. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années Ok, great! I'm glad you managed to figure it out. Yes, AuditedModel is a helper interface around entities designed to support multi-tenancy.AuditedModel interface will be automatically added to your Model when the entity definition contains the fields: companyId, createDate, modifiedDate, userId, userName.Similarly, the GroupedModel interface provides support for scoping models to groups (a.k.a. Sites) and is applied if the entity is an AuditedModel + has the groupId field.There are several other automatically applied interfaces derived from entity columns, like workflow, attached, resourced, etc. Apparently this is a subject still in need of documentation. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Ray, thanks for your reply!What would think of a new feature in the service builder definition that would automatically create these audit fields i.e. a new property "auditedModel=true/false" ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Matteo S Ray Augé Il y a 11 années Hi Ray,I would like to know what is the best way to add a custom facet implementation.I am trying to implement drilled-down search, and I need to produce an AND query for MultiValueFacet. Looking at source, I believe that this can't be done, because termQuery has booleanClause hardcoded (added request http://issues.liferay.com/browse/LPS-28228).Thanks in advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo S Il y a 11 années Facets are for single fields only (both Bobo [our lucene facet impl] and Solr only have APIs for collecting facet on single fields at a time). But if you need to refine the underlying query so that it reflects some custom logic, then you can do that by passing an array of BooleanClauses to the searchContext before calling search in the FacetedSearcher.SearchContext searchContext = .. // setup the contextIndexer indexer = FacetedSearcher.getInstance();searchContext.setBooleanClauses(BooleanClause[] booleanClauses)Hits hits = indexer.search(searchContext);Note: An AND is simply a MUST "Occur" clause around a number of other Query instances (or Clauses). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Ray Augé Il y a 11 années BTW, the "Multi" in the name MultiValueFacet is not to reflect how it is used with respect to the number of fields to collect data from, but rather to indicate the "type" of field it can be used with. In this case fields with "multiple" values.In indexing engines, fields generally fall into one of two broad classes: - single value fields (like a number, fixed string token)- multi-value fields (like text, or arrays of values)There are certain types of operations that can take place on each of those two classes of fields. For instance, you can't do a Range query on a multi-value field. you generally can't sort a result set on a multi-value field, single value fields must generally be exact matches (setting aside regex matching obviously), etc. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Himanshu Modi Ray Augé Il y a 11 années Hi Ray,I have the requirements to pass multiple categories names while searching. But Faceted searcher is not giving the results for multiple categories.For example while I pass assetCategoryNames field value as comm separated (say topic2,COUNTRY). The full query that is built in FacetedSearcher.java class looks like ----"+(+(companyId:10154) +(assetCategoryNames:topic2 COUNTRY) +((+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksEntry)) (+(entryClassName:com.liferay.portlet.blogs.model.BlogsEntry)) (+(entryClassName:com.liferay.portlet.calendar.model.CalEvent)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFileEntry) +(status:0)) ..........".Above if you see the part of query---" (assetCategoryNames:topic2 COUNTRY) ", you will notice that category names are coming but there is no boolean operator added by the system. I have gone through all the above threads, I found ur comments but could not get it completely as what needs to be done to select multiple categories at one time while searching.If any booleanClause need to be set in serachContext then how and what it should be .Please let me know the solution if you are aware of this scenario. Thanks in advance,Himanshu Modi Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Himanshu Modi Himanshu Modi Il y a 11 années Typo--(assetCategoryNames:topic2 assetCategoryNames:COUNTRY) is the correct query I'm getting. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Himanshu Modi Il y a 11 années The correct way to do that would be by passing a set of additional BooleanClauses to the searchContext.setBooleanClauses(BooleanClause[] clauses) method just before making the search. Facets are not designed for doing filtering only for collecting metrics. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Hi Ray, is there any way to integrate a custom portlet into the asset entries facet ?My portlet has it's custom Indexer that is registered via liferay-portlet.xml and I added my model in the search-portlet's configuration. If I add an OpenSearch implementation the results are displayed at the bottom of the search, but I can't get it to work with the faceted search. What am I missing? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Kim A Kunc Il y a 11 années I figured it it out, my Indexer extends BaseIndexer but somehow not all keywords are set for the facet query to match my documents. I was missing fields "COMPANY_ID" and "GROUP_ID" that are only set in BaseIndexer if your model is an instance of "AuditedModel" which apparently my model class is not. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années Ok, great! I'm glad you managed to figure it out. Yes, AuditedModel is a helper interface around entities designed to support multi-tenancy.AuditedModel interface will be automatically added to your Model when the entity definition contains the fields: companyId, createDate, modifiedDate, userId, userName.Similarly, the GroupedModel interface provides support for scoping models to groups (a.k.a. Sites) and is applied if the entity is an AuditedModel + has the groupId field.There are several other automatically applied interfaces derived from entity columns, like workflow, attached, resourced, etc. Apparently this is a subject still in need of documentation. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Ray, thanks for your reply!What would think of a new feature in the service builder definition that would automatically create these audit fields i.e. a new property "auditedModel=true/false" ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Matteo S Il y a 11 années Facets are for single fields only (both Bobo [our lucene facet impl] and Solr only have APIs for collecting facet on single fields at a time). But if you need to refine the underlying query so that it reflects some custom logic, then you can do that by passing an array of BooleanClauses to the searchContext before calling search in the FacetedSearcher.SearchContext searchContext = .. // setup the contextIndexer indexer = FacetedSearcher.getInstance();searchContext.setBooleanClauses(BooleanClause[] booleanClauses)Hits hits = indexer.search(searchContext);Note: An AND is simply a MUST "Occur" clause around a number of other Query instances (or Clauses). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Ray Augé Il y a 11 années BTW, the "Multi" in the name MultiValueFacet is not to reflect how it is used with respect to the number of fields to collect data from, but rather to indicate the "type" of field it can be used with. In this case fields with "multiple" values.In indexing engines, fields generally fall into one of two broad classes: - single value fields (like a number, fixed string token)- multi-value fields (like text, or arrays of values)There are certain types of operations that can take place on each of those two classes of fields. For instance, you can't do a Range query on a multi-value field. you generally can't sort a result set on a multi-value field, single value fields must generally be exact matches (setting aside regex matching obviously), etc. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Himanshu Modi Ray Augé Il y a 11 années Hi Ray,I have the requirements to pass multiple categories names while searching. But Faceted searcher is not giving the results for multiple categories.For example while I pass assetCategoryNames field value as comm separated (say topic2,COUNTRY). The full query that is built in FacetedSearcher.java class looks like ----"+(+(companyId:10154) +(assetCategoryNames:topic2 COUNTRY) +((+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksEntry)) (+(entryClassName:com.liferay.portlet.blogs.model.BlogsEntry)) (+(entryClassName:com.liferay.portlet.calendar.model.CalEvent)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFileEntry) +(status:0)) ..........".Above if you see the part of query---" (assetCategoryNames:topic2 COUNTRY) ", you will notice that category names are coming but there is no boolean operator added by the system. I have gone through all the above threads, I found ur comments but could not get it completely as what needs to be done to select multiple categories at one time while searching.If any booleanClause need to be set in serachContext then how and what it should be .Please let me know the solution if you are aware of this scenario. Thanks in advance,Himanshu Modi Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Himanshu Modi Himanshu Modi Il y a 11 années Typo--(assetCategoryNames:topic2 assetCategoryNames:COUNTRY) is the correct query I'm getting. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Himanshu Modi Il y a 11 années The correct way to do that would be by passing a set of additional BooleanClauses to the searchContext.setBooleanClauses(BooleanClause[] clauses) method just before making the search. Facets are not designed for doing filtering only for collecting metrics. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Hi Ray, is there any way to integrate a custom portlet into the asset entries facet ?My portlet has it's custom Indexer that is registered via liferay-portlet.xml and I added my model in the search-portlet's configuration. If I add an OpenSearch implementation the results are displayed at the bottom of the search, but I can't get it to work with the faceted search. What am I missing? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Kim A Kunc Il y a 11 années I figured it it out, my Indexer extends BaseIndexer but somehow not all keywords are set for the facet query to match my documents. I was missing fields "COMPANY_ID" and "GROUP_ID" that are only set in BaseIndexer if your model is an instance of "AuditedModel" which apparently my model class is not. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années Ok, great! I'm glad you managed to figure it out. Yes, AuditedModel is a helper interface around entities designed to support multi-tenancy.AuditedModel interface will be automatically added to your Model when the entity definition contains the fields: companyId, createDate, modifiedDate, userId, userName.Similarly, the GroupedModel interface provides support for scoping models to groups (a.k.a. Sites) and is applied if the entity is an AuditedModel + has the groupId field.There are several other automatically applied interfaces derived from entity columns, like workflow, attached, resourced, etc. Apparently this is a subject still in need of documentation. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Ray, thanks for your reply!What would think of a new feature in the service builder definition that would automatically create these audit fields i.e. a new property "auditedModel=true/false" ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Ray Augé Il y a 11 années BTW, the "Multi" in the name MultiValueFacet is not to reflect how it is used with respect to the number of fields to collect data from, but rather to indicate the "type" of field it can be used with. In this case fields with "multiple" values.In indexing engines, fields generally fall into one of two broad classes: - single value fields (like a number, fixed string token)- multi-value fields (like text, or arrays of values)There are certain types of operations that can take place on each of those two classes of fields. For instance, you can't do a Range query on a multi-value field. you generally can't sort a result set on a multi-value field, single value fields must generally be exact matches (setting aside regex matching obviously), etc. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Himanshu Modi Ray Augé Il y a 11 années Hi Ray,I have the requirements to pass multiple categories names while searching. But Faceted searcher is not giving the results for multiple categories.For example while I pass assetCategoryNames field value as comm separated (say topic2,COUNTRY). The full query that is built in FacetedSearcher.java class looks like ----"+(+(companyId:10154) +(assetCategoryNames:topic2 COUNTRY) +((+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksEntry)) (+(entryClassName:com.liferay.portlet.blogs.model.BlogsEntry)) (+(entryClassName:com.liferay.portlet.calendar.model.CalEvent)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFileEntry) +(status:0)) ..........".Above if you see the part of query---" (assetCategoryNames:topic2 COUNTRY) ", you will notice that category names are coming but there is no boolean operator added by the system. I have gone through all the above threads, I found ur comments but could not get it completely as what needs to be done to select multiple categories at one time while searching.If any booleanClause need to be set in serachContext then how and what it should be .Please let me know the solution if you are aware of this scenario. Thanks in advance,Himanshu Modi Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Himanshu Modi Himanshu Modi Il y a 11 années Typo--(assetCategoryNames:topic2 assetCategoryNames:COUNTRY) is the correct query I'm getting. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Himanshu Modi Il y a 11 années The correct way to do that would be by passing a set of additional BooleanClauses to the searchContext.setBooleanClauses(BooleanClause[] clauses) method just before making the search. Facets are not designed for doing filtering only for collecting metrics. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Hi Ray, is there any way to integrate a custom portlet into the asset entries facet ?My portlet has it's custom Indexer that is registered via liferay-portlet.xml and I added my model in the search-portlet's configuration. If I add an OpenSearch implementation the results are displayed at the bottom of the search, but I can't get it to work with the faceted search. What am I missing? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Kim A Kunc Il y a 11 années I figured it it out, my Indexer extends BaseIndexer but somehow not all keywords are set for the facet query to match my documents. I was missing fields "COMPANY_ID" and "GROUP_ID" that are only set in BaseIndexer if your model is an instance of "AuditedModel" which apparently my model class is not. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années Ok, great! I'm glad you managed to figure it out. Yes, AuditedModel is a helper interface around entities designed to support multi-tenancy.AuditedModel interface will be automatically added to your Model when the entity definition contains the fields: companyId, createDate, modifiedDate, userId, userName.Similarly, the GroupedModel interface provides support for scoping models to groups (a.k.a. Sites) and is applied if the entity is an AuditedModel + has the groupId field.There are several other automatically applied interfaces derived from entity columns, like workflow, attached, resourced, etc. Apparently this is a subject still in need of documentation. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Ray, thanks for your reply!What would think of a new feature in the service builder definition that would automatically create these audit fields i.e. a new property "auditedModel=true/false" ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Himanshu Modi Ray Augé Il y a 11 années Hi Ray,I have the requirements to pass multiple categories names while searching. But Faceted searcher is not giving the results for multiple categories.For example while I pass assetCategoryNames field value as comm separated (say topic2,COUNTRY). The full query that is built in FacetedSearcher.java class looks like ----"+(+(companyId:10154) +(assetCategoryNames:topic2 COUNTRY) +((+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksEntry)) (+(entryClassName:com.liferay.portlet.blogs.model.BlogsEntry)) (+(entryClassName:com.liferay.portlet.calendar.model.CalEvent)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFileEntry) +(status:0)) ..........".Above if you see the part of query---" (assetCategoryNames:topic2 COUNTRY) ", you will notice that category names are coming but there is no boolean operator added by the system. I have gone through all the above threads, I found ur comments but could not get it completely as what needs to be done to select multiple categories at one time while searching.If any booleanClause need to be set in serachContext then how and what it should be .Please let me know the solution if you are aware of this scenario. Thanks in advance,Himanshu Modi Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Himanshu Modi Himanshu Modi Il y a 11 années Typo--(assetCategoryNames:topic2 assetCategoryNames:COUNTRY) is the correct query I'm getting. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Himanshu Modi Il y a 11 années The correct way to do that would be by passing a set of additional BooleanClauses to the searchContext.setBooleanClauses(BooleanClause[] clauses) method just before making the search. Facets are not designed for doing filtering only for collecting metrics. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Hi Ray, is there any way to integrate a custom portlet into the asset entries facet ?My portlet has it's custom Indexer that is registered via liferay-portlet.xml and I added my model in the search-portlet's configuration. If I add an OpenSearch implementation the results are displayed at the bottom of the search, but I can't get it to work with the faceted search. What am I missing? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Kim A Kunc Il y a 11 années I figured it it out, my Indexer extends BaseIndexer but somehow not all keywords are set for the facet query to match my documents. I was missing fields "COMPANY_ID" and "GROUP_ID" that are only set in BaseIndexer if your model is an instance of "AuditedModel" which apparently my model class is not. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années Ok, great! I'm glad you managed to figure it out. Yes, AuditedModel is a helper interface around entities designed to support multi-tenancy.AuditedModel interface will be automatically added to your Model when the entity definition contains the fields: companyId, createDate, modifiedDate, userId, userName.Similarly, the GroupedModel interface provides support for scoping models to groups (a.k.a. Sites) and is applied if the entity is an AuditedModel + has the groupId field.There are several other automatically applied interfaces derived from entity columns, like workflow, attached, resourced, etc. Apparently this is a subject still in need of documentation. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Ray, thanks for your reply!What would think of a new feature in the service builder definition that would automatically create these audit fields i.e. a new property "auditedModel=true/false" ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Himanshu Modi Himanshu Modi Il y a 11 années Typo--(assetCategoryNames:topic2 assetCategoryNames:COUNTRY) is the correct query I'm getting. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Himanshu Modi Il y a 11 années The correct way to do that would be by passing a set of additional BooleanClauses to the searchContext.setBooleanClauses(BooleanClause[] clauses) method just before making the search. Facets are not designed for doing filtering only for collecting metrics. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Hi Ray, is there any way to integrate a custom portlet into the asset entries facet ?My portlet has it's custom Indexer that is registered via liferay-portlet.xml and I added my model in the search-portlet's configuration. If I add an OpenSearch implementation the results are displayed at the bottom of the search, but I can't get it to work with the faceted search. What am I missing? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Kim A Kunc Il y a 11 années I figured it it out, my Indexer extends BaseIndexer but somehow not all keywords are set for the facet query to match my documents. I was missing fields "COMPANY_ID" and "GROUP_ID" that are only set in BaseIndexer if your model is an instance of "AuditedModel" which apparently my model class is not. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années Ok, great! I'm glad you managed to figure it out. Yes, AuditedModel is a helper interface around entities designed to support multi-tenancy.AuditedModel interface will be automatically added to your Model when the entity definition contains the fields: companyId, createDate, modifiedDate, userId, userName.Similarly, the GroupedModel interface provides support for scoping models to groups (a.k.a. Sites) and is applied if the entity is an AuditedModel + has the groupId field.There are several other automatically applied interfaces derived from entity columns, like workflow, attached, resourced, etc. Apparently this is a subject still in need of documentation. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Ray, thanks for your reply!What would think of a new feature in the service builder definition that would automatically create these audit fields i.e. a new property "auditedModel=true/false" ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Himanshu Modi Il y a 11 années The correct way to do that would be by passing a set of additional BooleanClauses to the searchContext.setBooleanClauses(BooleanClause[] clauses) method just before making the search. Facets are not designed for doing filtering only for collecting metrics. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Hi Ray, is there any way to integrate a custom portlet into the asset entries facet ?My portlet has it's custom Indexer that is registered via liferay-portlet.xml and I added my model in the search-portlet's configuration. If I add an OpenSearch implementation the results are displayed at the bottom of the search, but I can't get it to work with the faceted search. What am I missing? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Kim A Kunc Il y a 11 années I figured it it out, my Indexer extends BaseIndexer but somehow not all keywords are set for the facet query to match my documents. I was missing fields "COMPANY_ID" and "GROUP_ID" that are only set in BaseIndexer if your model is an instance of "AuditedModel" which apparently my model class is not. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années Ok, great! I'm glad you managed to figure it out. Yes, AuditedModel is a helper interface around entities designed to support multi-tenancy.AuditedModel interface will be automatically added to your Model when the entity definition contains the fields: companyId, createDate, modifiedDate, userId, userName.Similarly, the GroupedModel interface provides support for scoping models to groups (a.k.a. Sites) and is applied if the entity is an AuditedModel + has the groupId field.There are several other automatically applied interfaces derived from entity columns, like workflow, attached, resourced, etc. Apparently this is a subject still in need of documentation. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Ray, thanks for your reply!What would think of a new feature in the service builder definition that would automatically create these audit fields i.e. a new property "auditedModel=true/false" ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Kim A Kunc Ray Augé Il y a 11 années Hi Ray, is there any way to integrate a custom portlet into the asset entries facet ?My portlet has it's custom Indexer that is registered via liferay-portlet.xml and I added my model in the search-portlet's configuration. If I add an OpenSearch implementation the results are displayed at the bottom of the search, but I can't get it to work with the faceted search. What am I missing? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Kim A Kunc Il y a 11 années I figured it it out, my Indexer extends BaseIndexer but somehow not all keywords are set for the facet query to match my documents. I was missing fields "COMPANY_ID" and "GROUP_ID" that are only set in BaseIndexer if your model is an instance of "AuditedModel" which apparently my model class is not. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années Ok, great! I'm glad you managed to figure it out. Yes, AuditedModel is a helper interface around entities designed to support multi-tenancy.AuditedModel interface will be automatically added to your Model when the entity definition contains the fields: companyId, createDate, modifiedDate, userId, userName.Similarly, the GroupedModel interface provides support for scoping models to groups (a.k.a. Sites) and is applied if the entity is an AuditedModel + has the groupId field.There are several other automatically applied interfaces derived from entity columns, like workflow, attached, resourced, etc. Apparently this is a subject still in need of documentation. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Ray, thanks for your reply!What would think of a new feature in the service builder definition that would automatically create these audit fields i.e. a new property "auditedModel=true/false" ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Kim A Kunc Kim A Kunc Il y a 11 années I figured it it out, my Indexer extends BaseIndexer but somehow not all keywords are set for the facet query to match my documents. I was missing fields "COMPANY_ID" and "GROUP_ID" that are only set in BaseIndexer if your model is an instance of "AuditedModel" which apparently my model class is not. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années Ok, great! I'm glad you managed to figure it out. Yes, AuditedModel is a helper interface around entities designed to support multi-tenancy.AuditedModel interface will be automatically added to your Model when the entity definition contains the fields: companyId, createDate, modifiedDate, userId, userName.Similarly, the GroupedModel interface provides support for scoping models to groups (a.k.a. Sites) and is applied if the entity is an AuditedModel + has the groupId field.There are several other automatically applied interfaces derived from entity columns, like workflow, attached, resourced, etc. Apparently this is a subject still in need of documentation. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Ray, thanks for your reply!What would think of a new feature in the service builder definition that would automatically create these audit fields i.e. a new property "auditedModel=true/false" ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Kim A Kunc Il y a 11 années Ok, great! I'm glad you managed to figure it out. Yes, AuditedModel is a helper interface around entities designed to support multi-tenancy.AuditedModel interface will be automatically added to your Model when the entity definition contains the fields: companyId, createDate, modifiedDate, userId, userName.Similarly, the GroupedModel interface provides support for scoping models to groups (a.k.a. Sites) and is applied if the entity is an AuditedModel + has the groupId field.There are several other automatically applied interfaces derived from entity columns, like workflow, attached, resourced, etc. Apparently this is a subject still in need of documentation. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kim A Kunc Ray Augé Il y a 11 années Ray, thanks for your reply!What would think of a new feature in the service builder definition that would automatically create these audit fields i.e. a new property "auditedModel=true/false" ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Kim A Kunc Ray Augé Il y a 11 années Ray, thanks for your reply!What would think of a new feature in the service builder definition that would automatically create these audit fields i.e. a new property "auditedModel=true/false" ? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Kim A Kunc Il y a 11 années That would be cool (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Denis Signoretto Ray Augé Il y a 11 années Hi Ray,A really useful article. Can you tell me if the same functionalities are available through web services or JSON requests (via portal-client.jar) ?Thanks,Denis. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Denis Signoretto Il y a 11 années Unfortunately not at the moment (JIRA feature request?). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Matteo S Ray Augé Il y a 11 années Hi Ray,I do understand your point about facet's design. However, as others have pointed out, there's a strong use case regarding drilled down search.As of 6.1GA2, I don't see any possible solution which can be developed by using a jsp hook. We can't use multiple facets on the same term, and current implementation has BooleanClauseOccur.SHOULD hardcoded. MultiValueFacet (btw thanks for explaining its name) does handle multiple terms, so why you say that ain't the right place to edit the query?Look at @Himanshu case as example:- requirement: filter search with multiple terms on the same element- terms:topic2,COUNTRY- current implementation produces (assetCategoryNames:topic2 assetCategoryNames:COUNTRY): result is OR between these clauses- my proposal http://issues.liferay.com/browse/LPS-28228: let admin decide facet clauseexample result with (AND -BooleanClauseOccur.MUST ) -> (assetCategoryNames:topic2 AND assetCategoryNames:COUNTRY)I don't want to use a single facet to search on multiple fields, instead I need the option to produce and AND booleanQuery.I'm already using this approach on a couple of projects, because of deadlines, but I'm more than open to suggestions on a better way to implement this. Your explanations are really valuable.Thanks for your response, and sorry for my English..Matteo Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Gwowen Fu Il y a 11 années Thanks for this detailed blog about Faceted Search API.I am having an issue. The search is returning articles with old articleID.I have a portlet to add articles with articleID set to article title, later I change the portlet to delete all articles and add articles with articleID generated by Liferay.Problem happened, the data returned is the old article created before. The article is still using title as articleID instead of system generated ID.I tried to clear cache from Server Administration and tried to restart server several times and still the Faceted Search API returns old article. I checked the database and it is not there.Where is the data cached? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Gwowen Fu Il y a 11 années The data is not cached so much as it may be that the indexes are out of sync with the real data (in the D. Try reindexing the search engines (you can do that all at once via the Admin portlet, or individually by portlet through the plugins configurations portlet). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Ray Augé Il y a 11 années @Matteo, As I stated previously, you can use the searchContext.setBooleanClauses(BooleanClause[] clauses) method to add more filtering. Such clauses can implement whatever complex logic you wish to add without causing the facet collector to process for that data (which if all you want to do is filter, is really the wrong mechanism). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Yogesh Sharma Ray Augé Il y a 11 années Hi Ray, Thank you for very informative and helpful blog.I would like to add something more in detail here:We sometime keep data in web content structure fields, and custom fields. Following are naming pattern of these fields:Structure fields can be referred as:"web_content/structure-field-name"Here structure-field-name name of field in webcontent structure.Custom fields can be referred as:"expando/custom_fields/custom_field_key"Here custom_field_key is key of custom field for entity.These can be used in facet configuration with additional display style (via hook). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Yogesh Sharma Il y a 11 années - Edité @Yogesh, that is correct! Thanks for pointing that out. We wanted to make sure any field in the index was accessible for facet collection, including custom fields, including document type fields which will be encoded a little differently as "ddm/<ddmStructureId>/<fieldName>". Sadly, it's true that the use of <ddmStructureId> is not ideal and there has already been discussion to perhaps provide an alternative that is more "usable" in future versions. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Bart Simpson Ray Augé Il y a 11 années Hi Ray,Is there a way to exclude certain fields? Here it only gives option to specify fields and values that are to be searched. What about the scenario : search all the facets except for one facet. Or search all except fieldX with valueY? I suppose this is only possible for now with PostProcessorHook? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Bart Simpson Il y a 11 années A facet by it's very nature can only search one field.. so I'm not clear on that question.It's also possible to apply an array of QueryClauses on the SearchContext to filter the reqults. This is how I would implement the: "Or search all except fieldX with valueY?" req. But that would require a hook at the moment. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Jonas Yuan Ray Augé Il y a 11 années Hi Ray, Thank you for very informative blog. Question:suppose that there are two categories / tags with same name in Global group and current group; how could we distinguish them in facets by names? is it better to use category ID / tag ID? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Jonas Yuan Il y a 11 années Jonas, categoryId is better in this case. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo Galletti Ray Augé Il y a 11 années Hi Ray, I'm new to Liferayin my custom theme I put search portlet at runtime with the following code: $velocityPortletPreferences.setValue("portlet-setup-show-borders","false") $velocityPortletPreferences.setValue("advancedConfiguration","true") $velocityPortletPreferences.setValue("searchConfiguration","'facets':[{'displayStyle':'asset_entries','weight':1.5,'s[......]") $theme.runtime("3_INSTANCE_kw01","",$velocityPortletPreferences.toString()) $velocityPortletPreferences.reset() where in "searchConfiguration", I insert a new line to make sure that the portlet can search a custom entity .But when in the portal I push the search command, these configurations are not observed. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo Galletti Il y a 11 années Ok, I think I see the problem. First, the search portlet is not instanceable, which means you can remove the "_INSTANCE_kw01" portion of the portletId. Secondly, because the portlet is not instanceable, you have to use a different technique to set it's preferences. See this gist https://gist.github.com/4287391 (there are actually 2 different preferences, the preferences, and the setup). ;) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Saurabh Gupta Ray Augé Il y a 11 années Hi Ray, This info. is really good. i have some requirement but i don't know how to do this. My requirement is "suppose with search portlet there is 3 radio button 1st company tag, 2nd is for message board and 3rd for site. after selecting any radio button where and which value i need set or what code modification i need to do." Thank you in Advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Mike Ring Ray Augé Il y a 11 années Ray,Is putting the default search configuration in a custom theme (in the link you posted the portal_normal.vm file) the preferred way to change the default search configuration for all search portlets? I couldn't get it to work and was wondering if there's a better way. I'm also trying to add a custom entity to the advanced search configuration for all search portlets in my app.Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Gwowen Fu Il y a 11 années The data is not cached so much as it may be that the indexes are out of sync with the real data (in the D. Try reindexing the search engines (you can do that all at once via the Admin portlet, or individually by portlet through the plugins configurations portlet). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Ray Augé Il y a 11 années @Matteo, As I stated previously, you can use the searchContext.setBooleanClauses(BooleanClause[] clauses) method to add more filtering. Such clauses can implement whatever complex logic you wish to add without causing the facet collector to process for that data (which if all you want to do is filter, is really the wrong mechanism). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Yogesh Sharma Ray Augé Il y a 11 années Hi Ray, Thank you for very informative and helpful blog.I would like to add something more in detail here:We sometime keep data in web content structure fields, and custom fields. Following are naming pattern of these fields:Structure fields can be referred as:"web_content/structure-field-name"Here structure-field-name name of field in webcontent structure.Custom fields can be referred as:"expando/custom_fields/custom_field_key"Here custom_field_key is key of custom field for entity.These can be used in facet configuration with additional display style (via hook). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Yogesh Sharma Il y a 11 années - Edité @Yogesh, that is correct! Thanks for pointing that out. We wanted to make sure any field in the index was accessible for facet collection, including custom fields, including document type fields which will be encoded a little differently as "ddm/<ddmStructureId>/<fieldName>". Sadly, it's true that the use of <ddmStructureId> is not ideal and there has already been discussion to perhaps provide an alternative that is more "usable" in future versions. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Bart Simpson Ray Augé Il y a 11 années Hi Ray,Is there a way to exclude certain fields? Here it only gives option to specify fields and values that are to be searched. What about the scenario : search all the facets except for one facet. Or search all except fieldX with valueY? I suppose this is only possible for now with PostProcessorHook? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Bart Simpson Il y a 11 années A facet by it's very nature can only search one field.. so I'm not clear on that question.It's also possible to apply an array of QueryClauses on the SearchContext to filter the reqults. This is how I would implement the: "Or search all except fieldX with valueY?" req. But that would require a hook at the moment. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Jonas Yuan Ray Augé Il y a 11 années Hi Ray, Thank you for very informative blog. Question:suppose that there are two categories / tags with same name in Global group and current group; how could we distinguish them in facets by names? is it better to use category ID / tag ID? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Jonas Yuan Il y a 11 années Jonas, categoryId is better in this case. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo Galletti Ray Augé Il y a 11 années Hi Ray, I'm new to Liferayin my custom theme I put search portlet at runtime with the following code: $velocityPortletPreferences.setValue("portlet-setup-show-borders","false") $velocityPortletPreferences.setValue("advancedConfiguration","true") $velocityPortletPreferences.setValue("searchConfiguration","'facets':[{'displayStyle':'asset_entries','weight':1.5,'s[......]") $theme.runtime("3_INSTANCE_kw01","",$velocityPortletPreferences.toString()) $velocityPortletPreferences.reset() where in "searchConfiguration", I insert a new line to make sure that the portlet can search a custom entity .But when in the portal I push the search command, these configurations are not observed. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo Galletti Il y a 11 années Ok, I think I see the problem. First, the search portlet is not instanceable, which means you can remove the "_INSTANCE_kw01" portion of the portletId. Secondly, because the portlet is not instanceable, you have to use a different technique to set it's preferences. See this gist https://gist.github.com/4287391 (there are actually 2 different preferences, the preferences, and the setup). ;) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Saurabh Gupta Ray Augé Il y a 11 années Hi Ray, This info. is really good. i have some requirement but i don't know how to do this. My requirement is "suppose with search portlet there is 3 radio button 1st company tag, 2nd is for message board and 3rd for site. after selecting any radio button where and which value i need set or what code modification i need to do." Thank you in Advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Mike Ring Ray Augé Il y a 11 années Ray,Is putting the default search configuration in a custom theme (in the link you posted the portal_normal.vm file) the preferred way to change the default search configuration for all search portlets? I couldn't get it to work and was wondering if there's a better way. I'm also trying to add a custom entity to the advanced search configuration for all search portlets in my app.Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Ray Augé Il y a 11 années @Matteo, As I stated previously, you can use the searchContext.setBooleanClauses(BooleanClause[] clauses) method to add more filtering. Such clauses can implement whatever complex logic you wish to add without causing the facet collector to process for that data (which if all you want to do is filter, is really the wrong mechanism). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Yogesh Sharma Ray Augé Il y a 11 années Hi Ray, Thank you for very informative and helpful blog.I would like to add something more in detail here:We sometime keep data in web content structure fields, and custom fields. Following are naming pattern of these fields:Structure fields can be referred as:"web_content/structure-field-name"Here structure-field-name name of field in webcontent structure.Custom fields can be referred as:"expando/custom_fields/custom_field_key"Here custom_field_key is key of custom field for entity.These can be used in facet configuration with additional display style (via hook). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Yogesh Sharma Il y a 11 années - Edité @Yogesh, that is correct! Thanks for pointing that out. We wanted to make sure any field in the index was accessible for facet collection, including custom fields, including document type fields which will be encoded a little differently as "ddm/<ddmStructureId>/<fieldName>". Sadly, it's true that the use of <ddmStructureId> is not ideal and there has already been discussion to perhaps provide an alternative that is more "usable" in future versions. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Bart Simpson Ray Augé Il y a 11 années Hi Ray,Is there a way to exclude certain fields? Here it only gives option to specify fields and values that are to be searched. What about the scenario : search all the facets except for one facet. Or search all except fieldX with valueY? I suppose this is only possible for now with PostProcessorHook? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Bart Simpson Il y a 11 années A facet by it's very nature can only search one field.. so I'm not clear on that question.It's also possible to apply an array of QueryClauses on the SearchContext to filter the reqults. This is how I would implement the: "Or search all except fieldX with valueY?" req. But that would require a hook at the moment. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Jonas Yuan Ray Augé Il y a 11 années Hi Ray, Thank you for very informative blog. Question:suppose that there are two categories / tags with same name in Global group and current group; how could we distinguish them in facets by names? is it better to use category ID / tag ID? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Jonas Yuan Il y a 11 années Jonas, categoryId is better in this case. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo Galletti Ray Augé Il y a 11 années Hi Ray, I'm new to Liferayin my custom theme I put search portlet at runtime with the following code: $velocityPortletPreferences.setValue("portlet-setup-show-borders","false") $velocityPortletPreferences.setValue("advancedConfiguration","true") $velocityPortletPreferences.setValue("searchConfiguration","'facets':[{'displayStyle':'asset_entries','weight':1.5,'s[......]") $theme.runtime("3_INSTANCE_kw01","",$velocityPortletPreferences.toString()) $velocityPortletPreferences.reset() where in "searchConfiguration", I insert a new line to make sure that the portlet can search a custom entity .But when in the portal I push the search command, these configurations are not observed. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo Galletti Il y a 11 années Ok, I think I see the problem. First, the search portlet is not instanceable, which means you can remove the "_INSTANCE_kw01" portion of the portletId. Secondly, because the portlet is not instanceable, you have to use a different technique to set it's preferences. See this gist https://gist.github.com/4287391 (there are actually 2 different preferences, the preferences, and the setup). ;) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Saurabh Gupta Ray Augé Il y a 11 années Hi Ray, This info. is really good. i have some requirement but i don't know how to do this. My requirement is "suppose with search portlet there is 3 radio button 1st company tag, 2nd is for message board and 3rd for site. after selecting any radio button where and which value i need set or what code modification i need to do." Thank you in Advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Mike Ring Ray Augé Il y a 11 années Ray,Is putting the default search configuration in a custom theme (in the link you posted the portal_normal.vm file) the preferred way to change the default search configuration for all search portlets? I couldn't get it to work and was wondering if there's a better way. I'm also trying to add a custom entity to the advanced search configuration for all search portlets in my app.Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Yogesh Sharma Ray Augé Il y a 11 années Hi Ray, Thank you for very informative and helpful blog.I would like to add something more in detail here:We sometime keep data in web content structure fields, and custom fields. Following are naming pattern of these fields:Structure fields can be referred as:"web_content/structure-field-name"Here structure-field-name name of field in webcontent structure.Custom fields can be referred as:"expando/custom_fields/custom_field_key"Here custom_field_key is key of custom field for entity.These can be used in facet configuration with additional display style (via hook). Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Yogesh Sharma Il y a 11 années - Edité @Yogesh, that is correct! Thanks for pointing that out. We wanted to make sure any field in the index was accessible for facet collection, including custom fields, including document type fields which will be encoded a little differently as "ddm/<ddmStructureId>/<fieldName>". Sadly, it's true that the use of <ddmStructureId> is not ideal and there has already been discussion to perhaps provide an alternative that is more "usable" in future versions. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Bart Simpson Ray Augé Il y a 11 années Hi Ray,Is there a way to exclude certain fields? Here it only gives option to specify fields and values that are to be searched. What about the scenario : search all the facets except for one facet. Or search all except fieldX with valueY? I suppose this is only possible for now with PostProcessorHook? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Bart Simpson Il y a 11 années A facet by it's very nature can only search one field.. so I'm not clear on that question.It's also possible to apply an array of QueryClauses on the SearchContext to filter the reqults. This is how I would implement the: "Or search all except fieldX with valueY?" req. But that would require a hook at the moment. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Jonas Yuan Ray Augé Il y a 11 années Hi Ray, Thank you for very informative blog. Question:suppose that there are two categories / tags with same name in Global group and current group; how could we distinguish them in facets by names? is it better to use category ID / tag ID? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Jonas Yuan Il y a 11 années Jonas, categoryId is better in this case. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo Galletti Ray Augé Il y a 11 années Hi Ray, I'm new to Liferayin my custom theme I put search portlet at runtime with the following code: $velocityPortletPreferences.setValue("portlet-setup-show-borders","false") $velocityPortletPreferences.setValue("advancedConfiguration","true") $velocityPortletPreferences.setValue("searchConfiguration","'facets':[{'displayStyle':'asset_entries','weight':1.5,'s[......]") $theme.runtime("3_INSTANCE_kw01","",$velocityPortletPreferences.toString()) $velocityPortletPreferences.reset() where in "searchConfiguration", I insert a new line to make sure that the portlet can search a custom entity .But when in the portal I push the search command, these configurations are not observed. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo Galletti Il y a 11 années Ok, I think I see the problem. First, the search portlet is not instanceable, which means you can remove the "_INSTANCE_kw01" portion of the portletId. Secondly, because the portlet is not instanceable, you have to use a different technique to set it's preferences. See this gist https://gist.github.com/4287391 (there are actually 2 different preferences, the preferences, and the setup). ;) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Saurabh Gupta Ray Augé Il y a 11 années Hi Ray, This info. is really good. i have some requirement but i don't know how to do this. My requirement is "suppose with search portlet there is 3 radio button 1st company tag, 2nd is for message board and 3rd for site. after selecting any radio button where and which value i need set or what code modification i need to do." Thank you in Advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Mike Ring Ray Augé Il y a 11 années Ray,Is putting the default search configuration in a custom theme (in the link you posted the portal_normal.vm file) the preferred way to change the default search configuration for all search portlets? I couldn't get it to work and was wondering if there's a better way. I'm also trying to add a custom entity to the advanced search configuration for all search portlets in my app.Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Yogesh Sharma Il y a 11 années - Edité @Yogesh, that is correct! Thanks for pointing that out. We wanted to make sure any field in the index was accessible for facet collection, including custom fields, including document type fields which will be encoded a little differently as "ddm/<ddmStructureId>/<fieldName>". Sadly, it's true that the use of <ddmStructureId> is not ideal and there has already been discussion to perhaps provide an alternative that is more "usable" in future versions. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Bart Simpson Ray Augé Il y a 11 années Hi Ray,Is there a way to exclude certain fields? Here it only gives option to specify fields and values that are to be searched. What about the scenario : search all the facets except for one facet. Or search all except fieldX with valueY? I suppose this is only possible for now with PostProcessorHook? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Bart Simpson Il y a 11 années A facet by it's very nature can only search one field.. so I'm not clear on that question.It's also possible to apply an array of QueryClauses on the SearchContext to filter the reqults. This is how I would implement the: "Or search all except fieldX with valueY?" req. But that would require a hook at the moment. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Jonas Yuan Ray Augé Il y a 11 années Hi Ray, Thank you for very informative blog. Question:suppose that there are two categories / tags with same name in Global group and current group; how could we distinguish them in facets by names? is it better to use category ID / tag ID? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Jonas Yuan Il y a 11 années Jonas, categoryId is better in this case. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo Galletti Ray Augé Il y a 11 années Hi Ray, I'm new to Liferayin my custom theme I put search portlet at runtime with the following code: $velocityPortletPreferences.setValue("portlet-setup-show-borders","false") $velocityPortletPreferences.setValue("advancedConfiguration","true") $velocityPortletPreferences.setValue("searchConfiguration","'facets':[{'displayStyle':'asset_entries','weight':1.5,'s[......]") $theme.runtime("3_INSTANCE_kw01","",$velocityPortletPreferences.toString()) $velocityPortletPreferences.reset() where in "searchConfiguration", I insert a new line to make sure that the portlet can search a custom entity .But when in the portal I push the search command, these configurations are not observed. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo Galletti Il y a 11 années Ok, I think I see the problem. First, the search portlet is not instanceable, which means you can remove the "_INSTANCE_kw01" portion of the portletId. Secondly, because the portlet is not instanceable, you have to use a different technique to set it's preferences. See this gist https://gist.github.com/4287391 (there are actually 2 different preferences, the preferences, and the setup). ;) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Saurabh Gupta Ray Augé Il y a 11 années Hi Ray, This info. is really good. i have some requirement but i don't know how to do this. My requirement is "suppose with search portlet there is 3 radio button 1st company tag, 2nd is for message board and 3rd for site. after selecting any radio button where and which value i need set or what code modification i need to do." Thank you in Advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Mike Ring Ray Augé Il y a 11 années Ray,Is putting the default search configuration in a custom theme (in the link you posted the portal_normal.vm file) the preferred way to change the default search configuration for all search portlets? I couldn't get it to work and was wondering if there's a better way. I'm also trying to add a custom entity to the advanced search configuration for all search portlets in my app.Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Bart Simpson Ray Augé Il y a 11 années Hi Ray,Is there a way to exclude certain fields? Here it only gives option to specify fields and values that are to be searched. What about the scenario : search all the facets except for one facet. Or search all except fieldX with valueY? I suppose this is only possible for now with PostProcessorHook? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Bart Simpson Il y a 11 années A facet by it's very nature can only search one field.. so I'm not clear on that question.It's also possible to apply an array of QueryClauses on the SearchContext to filter the reqults. This is how I would implement the: "Or search all except fieldX with valueY?" req. But that would require a hook at the moment. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Jonas Yuan Ray Augé Il y a 11 années Hi Ray, Thank you for very informative blog. Question:suppose that there are two categories / tags with same name in Global group and current group; how could we distinguish them in facets by names? is it better to use category ID / tag ID? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Jonas Yuan Il y a 11 années Jonas, categoryId is better in this case. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo Galletti Ray Augé Il y a 11 années Hi Ray, I'm new to Liferayin my custom theme I put search portlet at runtime with the following code: $velocityPortletPreferences.setValue("portlet-setup-show-borders","false") $velocityPortletPreferences.setValue("advancedConfiguration","true") $velocityPortletPreferences.setValue("searchConfiguration","'facets':[{'displayStyle':'asset_entries','weight':1.5,'s[......]") $theme.runtime("3_INSTANCE_kw01","",$velocityPortletPreferences.toString()) $velocityPortletPreferences.reset() where in "searchConfiguration", I insert a new line to make sure that the portlet can search a custom entity .But when in the portal I push the search command, these configurations are not observed. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo Galletti Il y a 11 années Ok, I think I see the problem. First, the search portlet is not instanceable, which means you can remove the "_INSTANCE_kw01" portion of the portletId. Secondly, because the portlet is not instanceable, you have to use a different technique to set it's preferences. See this gist https://gist.github.com/4287391 (there are actually 2 different preferences, the preferences, and the setup). ;) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Saurabh Gupta Ray Augé Il y a 11 années Hi Ray, This info. is really good. i have some requirement but i don't know how to do this. My requirement is "suppose with search portlet there is 3 radio button 1st company tag, 2nd is for message board and 3rd for site. after selecting any radio button where and which value i need set or what code modification i need to do." Thank you in Advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Mike Ring Ray Augé Il y a 11 années Ray,Is putting the default search configuration in a custom theme (in the link you posted the portal_normal.vm file) the preferred way to change the default search configuration for all search portlets? I couldn't get it to work and was wondering if there's a better way. I'm also trying to add a custom entity to the advanced search configuration for all search portlets in my app.Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Bart Simpson Il y a 11 années A facet by it's very nature can only search one field.. so I'm not clear on that question.It's also possible to apply an array of QueryClauses on the SearchContext to filter the reqults. This is how I would implement the: "Or search all except fieldX with valueY?" req. But that would require a hook at the moment. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Jonas Yuan Ray Augé Il y a 11 années Hi Ray, Thank you for very informative blog. Question:suppose that there are two categories / tags with same name in Global group and current group; how could we distinguish them in facets by names? is it better to use category ID / tag ID? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Jonas Yuan Il y a 11 années Jonas, categoryId is better in this case. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo Galletti Ray Augé Il y a 11 années Hi Ray, I'm new to Liferayin my custom theme I put search portlet at runtime with the following code: $velocityPortletPreferences.setValue("portlet-setup-show-borders","false") $velocityPortletPreferences.setValue("advancedConfiguration","true") $velocityPortletPreferences.setValue("searchConfiguration","'facets':[{'displayStyle':'asset_entries','weight':1.5,'s[......]") $theme.runtime("3_INSTANCE_kw01","",$velocityPortletPreferences.toString()) $velocityPortletPreferences.reset() where in "searchConfiguration", I insert a new line to make sure that the portlet can search a custom entity .But when in the portal I push the search command, these configurations are not observed. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo Galletti Il y a 11 années Ok, I think I see the problem. First, the search portlet is not instanceable, which means you can remove the "_INSTANCE_kw01" portion of the portletId. Secondly, because the portlet is not instanceable, you have to use a different technique to set it's preferences. See this gist https://gist.github.com/4287391 (there are actually 2 different preferences, the preferences, and the setup). ;) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Saurabh Gupta Ray Augé Il y a 11 années Hi Ray, This info. is really good. i have some requirement but i don't know how to do this. My requirement is "suppose with search portlet there is 3 radio button 1st company tag, 2nd is for message board and 3rd for site. after selecting any radio button where and which value i need set or what code modification i need to do." Thank you in Advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Mike Ring Ray Augé Il y a 11 années Ray,Is putting the default search configuration in a custom theme (in the link you posted the portal_normal.vm file) the preferred way to change the default search configuration for all search portlets? I couldn't get it to work and was wondering if there's a better way. I'm also trying to add a custom entity to the advanced search configuration for all search portlets in my app.Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Jonas Yuan Ray Augé Il y a 11 années Hi Ray, Thank you for very informative blog. Question:suppose that there are two categories / tags with same name in Global group and current group; how could we distinguish them in facets by names? is it better to use category ID / tag ID? Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Jonas Yuan Il y a 11 années Jonas, categoryId is better in this case. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo Galletti Ray Augé Il y a 11 années Hi Ray, I'm new to Liferayin my custom theme I put search portlet at runtime with the following code: $velocityPortletPreferences.setValue("portlet-setup-show-borders","false") $velocityPortletPreferences.setValue("advancedConfiguration","true") $velocityPortletPreferences.setValue("searchConfiguration","'facets':[{'displayStyle':'asset_entries','weight':1.5,'s[......]") $theme.runtime("3_INSTANCE_kw01","",$velocityPortletPreferences.toString()) $velocityPortletPreferences.reset() where in "searchConfiguration", I insert a new line to make sure that the portlet can search a custom entity .But when in the portal I push the search command, these configurations are not observed. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo Galletti Il y a 11 années Ok, I think I see the problem. First, the search portlet is not instanceable, which means you can remove the "_INSTANCE_kw01" portion of the portletId. Secondly, because the portlet is not instanceable, you have to use a different technique to set it's preferences. See this gist https://gist.github.com/4287391 (there are actually 2 different preferences, the preferences, and the setup). ;) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Saurabh Gupta Ray Augé Il y a 11 années Hi Ray, This info. is really good. i have some requirement but i don't know how to do this. My requirement is "suppose with search portlet there is 3 radio button 1st company tag, 2nd is for message board and 3rd for site. after selecting any radio button where and which value i need set or what code modification i need to do." Thank you in Advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Mike Ring Ray Augé Il y a 11 années Ray,Is putting the default search configuration in a custom theme (in the link you posted the portal_normal.vm file) the preferred way to change the default search configuration for all search portlets? I couldn't get it to work and was wondering if there's a better way. I'm also trying to add a custom entity to the advanced search configuration for all search portlets in my app.Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Jonas Yuan Il y a 11 années Jonas, categoryId is better in this case. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Matteo Galletti Ray Augé Il y a 11 années Hi Ray, I'm new to Liferayin my custom theme I put search portlet at runtime with the following code: $velocityPortletPreferences.setValue("portlet-setup-show-borders","false") $velocityPortletPreferences.setValue("advancedConfiguration","true") $velocityPortletPreferences.setValue("searchConfiguration","'facets':[{'displayStyle':'asset_entries','weight':1.5,'s[......]") $theme.runtime("3_INSTANCE_kw01","",$velocityPortletPreferences.toString()) $velocityPortletPreferences.reset() where in "searchConfiguration", I insert a new line to make sure that the portlet can search a custom entity .But when in the portal I push the search command, these configurations are not observed. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo Galletti Il y a 11 années Ok, I think I see the problem. First, the search portlet is not instanceable, which means you can remove the "_INSTANCE_kw01" portion of the portletId. Secondly, because the portlet is not instanceable, you have to use a different technique to set it's preferences. See this gist https://gist.github.com/4287391 (there are actually 2 different preferences, the preferences, and the setup). ;) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Saurabh Gupta Ray Augé Il y a 11 années Hi Ray, This info. is really good. i have some requirement but i don't know how to do this. My requirement is "suppose with search portlet there is 3 radio button 1st company tag, 2nd is for message board and 3rd for site. after selecting any radio button where and which value i need set or what code modification i need to do." Thank you in Advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Mike Ring Ray Augé Il y a 11 années Ray,Is putting the default search configuration in a custom theme (in the link you posted the portal_normal.vm file) the preferred way to change the default search configuration for all search portlets? I couldn't get it to work and was wondering if there's a better way. I'm also trying to add a custom entity to the advanced search configuration for all search portlets in my app.Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Matteo Galletti Ray Augé Il y a 11 années Hi Ray, I'm new to Liferayin my custom theme I put search portlet at runtime with the following code: $velocityPortletPreferences.setValue("portlet-setup-show-borders","false") $velocityPortletPreferences.setValue("advancedConfiguration","true") $velocityPortletPreferences.setValue("searchConfiguration","'facets':[{'displayStyle':'asset_entries','weight':1.5,'s[......]") $theme.runtime("3_INSTANCE_kw01","",$velocityPortletPreferences.toString()) $velocityPortletPreferences.reset() where in "searchConfiguration", I insert a new line to make sure that the portlet can search a custom entity .But when in the portal I push the search command, these configurations are not observed. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Ray Augé Matteo Galletti Il y a 11 années Ok, I think I see the problem. First, the search portlet is not instanceable, which means you can remove the "_INSTANCE_kw01" portion of the portletId. Secondly, because the portlet is not instanceable, you have to use a different technique to set it's preferences. See this gist https://gist.github.com/4287391 (there are actually 2 different preferences, the preferences, and the setup). ;) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Saurabh Gupta Ray Augé Il y a 11 années Hi Ray, This info. is really good. i have some requirement but i don't know how to do this. My requirement is "suppose with search portlet there is 3 radio button 1st company tag, 2nd is for message board and 3rd for site. after selecting any radio button where and which value i need set or what code modification i need to do." Thank you in Advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Mike Ring Ray Augé Il y a 11 années Ray,Is putting the default search configuration in a custom theme (in the link you posted the portal_normal.vm file) the preferred way to change the default search configuration for all search portlets? I couldn't get it to work and was wondering if there's a better way. I'm also trying to add a custom entity to the advanced search configuration for all search portlets in my app.Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Ray Augé Matteo Galletti Il y a 11 années Ok, I think I see the problem. First, the search portlet is not instanceable, which means you can remove the "_INSTANCE_kw01" portion of the portletId. Secondly, because the portlet is not instanceable, you have to use a different technique to set it's preferences. See this gist https://gist.github.com/4287391 (there are actually 2 different preferences, the preferences, and the setup). ;) Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Saurabh Gupta Ray Augé Il y a 11 années Hi Ray, This info. is really good. i have some requirement but i don't know how to do this. My requirement is "suppose with search portlet there is 3 radio button 1st company tag, 2nd is for message board and 3rd for site. after selecting any radio button where and which value i need set or what code modification i need to do." Thank you in Advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Mike Ring Ray Augé Il y a 11 années Ray,Is putting the default search configuration in a custom theme (in the link you posted the portal_normal.vm file) the preferred way to change the default search configuration for all search portlets? I couldn't get it to work and was wondering if there's a better way. I'm also trying to add a custom entity to the advanced search configuration for all search portlets in my app.Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Saurabh Gupta Ray Augé Il y a 11 années Hi Ray, This info. is really good. i have some requirement but i don't know how to do this. My requirement is "suppose with search portlet there is 3 radio button 1st company tag, 2nd is for message board and 3rd for site. after selecting any radio button where and which value i need set or what code modification i need to do." Thank you in Advance Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Mike Ring Ray Augé Il y a 11 années Ray,Is putting the default search configuration in a custom theme (in the link you posted the portal_normal.vm file) the preferred way to change the default search configuration for all search portlets? I couldn't get it to work and was wondering if there's a better way. I'm also trying to add a custom entity to the advanced search configuration for all search portlets in my app.Thanks. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler