Re: PAGE SUBSET SEARCHING

Philippe Vollenweider <[email protected]> Fri, 30 Nov 2007 12:17:57 +0100
Newsgroups gmane.comp.cms.jahia.devel
Message-ID <[email protected]>
Hi,

Here are some adds:

query string = "James AND jahia.definition_name:" + 
"directoryPeopleContainer";
-> will search "James" ina any field in containers "directoryPeopleContainer".

- query_string = "jahia.containerfield_" + 
"directoryPeopleFirstName".toLowerCase() + ":James"
-> will search "James" only in fields directoryPeopleFirstName, in 
all containers

And for other lucen constants:

jahia.field_id -> limit search to a specific field ID
jahia.jahia_id -> limit search to a specific site ID
jahia.page_id" -> limit search to a pageID
<http://jahia.id>jahia.id -> limit search to a specific container ID, 
or page ID
jahia.parent_id -> limit search to a specific container list ID
jahia.containerfield_ + fieldname.toLowerCase() -> limit search to a 
specific field
jahia.content_type -> limit search to a specific content type, value 
can be JahiaSearchConstant.CONTAINER_TYPE, 
JahiaSearchConstant.FIELD_TYPE or JahiaSearchConstant.PAGE_TYPE. When 
searching for containers, jahia.content_type can be either 
JahiaSearchConstant.CONTAINER_TYPE or JahiaSearchConstant.FIELD_TYPE.
jahia.acl_id -> limit search to content with a particular ACL rights
jahia.version -> the version id
jahia.workflow_state -> limit search to content in a specific staging 
state where 0=versioned, 1=live, >1 = staged
jahia.language_code -> limit search to content in a specific language
jahia.definition_name -> limit search to a container with the same 
definition name or to page with the same definition name.
jahia.category_id -> limit search to a specific category

Those constans are defined in class 
org.jahia.services.search.JahiaSearchConstant.

I hope it can help you.

Philippe.

At 29.11.2007 06:52, you wrote:

>Content-Class: urn:content-classes:message
>Content-Type: multipart/alternative; 
>boundary="----_=_NextPart_001_01C8324C.1063D36C"; x-avg-checked=avg-ok-7F555923
>
>Hi all,
>
>I hope you can assist.  We have used and adapted the code mentioned 
>on page 84 of the template development guide to enable page subset 
>searching, however it consistently captures/searches every page 
>within the site.  Instead of just  pages under the current 
>page.  The code from the PDF had to be updated to user StringBuilder 
>as we were getting a number of errors.  Does anyone know why this is 
>capturing every page within the site and not limiting the search 
>results to the pages under the existing page.
>
><http://www.jahia.net/jahia/webdav/site/jahia_net/shared/Documentation/5.0.3/Jahia5TemplateDeveloperGuide.pdf>http://www.jahia.net/jahia/webdav/site/jahia_net/shared/Documentation/5.0.3/Jahia5TemplateDeveloperGuide.pdf
>
>Many thanks in advance.
>
>Graham
>
>
>Code:
>
>
><div id="search">
>   <form name="searchForm" method="post" 
> action="<%=jData.gui().html().drawSearchLauncher()%>" 
> onSubmit="checkMaxPageItems(document.searchForm)" >
>     <p>
>       <label>Search for</label>
>       <input type="text" name="search" 
> value='<%=JahiaTools.getStrParameter(request,"search","")%>' />
>
>     <input type="hidden" name="maxPageItems" value="10" />
>     <% if (advSearchLicenseEnabled){ %>
>
><a 
>href="javascript:checkMaxPageItems(document.searchForm);setFreeSearchInput(document.searchForm);document.searchForm.searchView.value='advSearch';document.searchForm.submit()"><content:resourceBundle 
>resourceBundle="jahiatemplates.Corporate_portal_templates" 
>resourceName="search.advancedSearch" defaultValue="Advanced search" /></a>
>     <% } %>
>     <input type="hidden" 
> name="<%=PageSearchResultBuilderImpl.ONE_HIT_BY_PAGE_PARAMETER_NAME%>" 
> value="true" />
>     <input type="hidden" name="searchView" value="simple" />
>     <input type="hidden" name="searchHandler" value="advSearch" />
>     <input type="hidden" name="freeSearch" value='' />
>     <input type="hidden" 
> name="<%=Search_Engine.SEARCH_REFINE_ATTRIBUTE%>" value="" />
>     </p>
>     <p>
>       <select name="type">
>         <option value="0">All</option>
>         <option value="1">News</option>
>         <option value="2">Resource</option>
>       </select>
>     </p>
>     <p class="action">
>       <a 
> href="javascript:checkMaxPageItems(document.searchForm);setFreeSearchInput(document.searchForm);submitSimpleSearchForm();document.searchForm.submit()"><input 
> type="image" src="/../images/btn_go.gif" alt="Go" /></a>
>     </p>
>             <%
>                   //get the current pageID
>                   ContentPage startPage = 
> ContentPage.getPage(jData.page().getID());
>                   //get the list of child pages to construct the query
>                   //retain active and staged pages
>                   int pageInfosFlag = ContentPage.ACTIVE_PAGE_INFOS 
> | ContentPage.STAGING_PAGE_INFOS;
>                   // SiteMapViewHelper.DISPLAY_ALL_LEVEL means that 
> all subsequent children under the
>                   // current pageID node in the tree will be returned.
>                   // SiteMapViewHelper.DEFAULT_LEVEL means that 
> only the immediate children under the
>                   // currentpageID node in the tree will be returned.
>                   FlatSiteMapViewHelper flatSiteMap = new 
> FlatSiteMapViewHelper(jParams, jParams.getUser(),
>                   startPage, pageInfosFlag, jParams.getLocale().toString(),
>                   FlatSiteMapViewHelper.DEFAULT_LEVEL);
>                   //Append the pageID of selected children to the 
> current query string
>                   StringBuilder bob = new StringBuilder();
>                   bob.append("(");
>                   for (int j = 0; j < flatSiteMap.size(); j++) {
>                   int pageId = flatSiteMap.getPageID(j);
>                   if (j > 0){
>                   bob.append(" OR ");
>                   }
>                   bob.append("pageid:" + pageId );
>                   }
>                   bob.append(")");
>                   searchQuery = bob.toString();
>                   %>
>                         <h2>Current page id: <%= 
> ContentPage.getPage(jData.page().getID()) %></h2>
>                         <h3>search string: <%= searchQuery %></h3>
>                   <%
>             %>
>   </form>
></div>
>
>
>IMPORTANT: This e-mail, including any attachments, may contain 
>private or confidential information. If you think you may not be the 
>intended recipient, or if you have received this e-mail in error, 
>please contact the sender immediately and delete all copies of this 
>e-mail. If you are not the intended recipient, you must not 
>reproduce any part of this e-mail or disclose its contents to any 
>other party. This email represents the views of the individual 
>sender, which do not necessarily reflect those of education.au 
>limited except where the sender expressly states otherwise. It is 
>your responsibility to scan this email and any files transmitted 
>with it for viruses or any other defects. education.au limited will 
>not be liable for any loss, damage or consequence caused directly or 
>indirectly by this email.
>
>_______________________________________________
>dev_list mailing list
>[email protected]
>http://lists.jahia.org/cgi-bin/mailman/listinfo/dev_list

_______________________________________________
dev_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/dev_list