We are in the home page to a page builder template driven page. I noticed when I try to do a search across the board this search query gets trumped by Home page rule.
Please help with a work around? Am I doing something wrong?
I figured passing N:0,Ntk,Ntt=term for search is triggering N:0 home page. not sure how I should have the home page rule and also have our search be across all family products.
One work around I thought is to handle my search differently
to something like this where I can have 5 major family groups in an OR condition for N value to have NTK and NTT query against.
(I know this above Or syntax is wrong).
Any help is highly appreciated.
I understand your question to mean that you currently have a "home page" XMgr/PageBuilder landing page defined in your app which is setup to trigger when N=0 and when you're issuing a search on your site, the expected search results aren't given an opportunity to display because your "home page" landing page continues to get triggered.
If this is indeed your issue, I think your fix is straightforward and related mostly to XMgr/PageBuilder setup.
1) In the XMgr/PageBuilder section of your Endeca Workbench, make sure you have both a "home page" landing page and a "default search results" landing page defined.
2) The "default search results" landing page should be setup to have a Location="Applies At All Locations" . In other words, no explicit trigger defined.
3) The "home page" landing page should be setup to have a Location="Use as site's homepage".
4) The "home page" landing page should be given a higher priority than the "default search results" landing page (e.g. home page priority = 1, default search results priority = 5). This is important since at the N=0, or homepage state, both landing pages will trigger. The priority will ensure that the home page will trump the default page and be returned to the web application in the content tree.
As a matter of best practice, it is almost always recommended to create a "default" landing page to serve as a "catch all" when no other landing page explicitly triggers. Your web application logic should be prepared to handle the display of all of the content items offered by the default landing page.
Hope I am on the right track understanding your issue.
thanks for the response.
I exactly have the way you explained it. I was having home page as 4 and default landing page as 5, now I even tried bumping home page to #1 and default page remains #5.
Works well when:
When I navigate, I can see the default page is getting triggered. and when I pass no N value I get my home page.
If I have a search term triggered page it works perfect.
Home page takes precedence:
when I attempt to query a "generic" search term. (which do not have a landing page).
After posting this question, I was tryign to reach some documentation on Content Assembler API and hit this pdf and page 18 talks about the exact issue. (work around is still not sinking in)
Appreciate your help!
Interesting. I wouldn't expect the home_page to trigger when a search term is entered since I would only expect the home page to trigger when no filter has been applied (i.e. N=0). Search is a filter just like navigation, so I am confused by this. I would be interested to hear from product management on this because there may be considerations in the design of this feature that I am not appreciating.
That said, the approach described in the doc is essentially suggesting this:
1) Create a new template with a custom rule property
<RuleInfo zone="NavigationPageZone" style="PageStyle">
<Property name="search_results" value="true"/>
2) Create a new "search_default" landing page based on this new template and give it higher priority than your "home page" (e.g. search_default priority = 1, home page priority = 2, default results page = 3)
3) If there are no search parameters present, you can augment the query with a filter such as Nmrf=not(search_results:true) before the query is issued to the MDEX. This will filter out any page built from the template with our custom rule property in step 1.
This query filter in your application logic will likely be set programmatically:
Java setter method => ENEQuery.setNavMerchRuleFilter()
.NET setter method => ENEQuery.NavMerchRuleFilter()
Hope that helps,
Another approach may be to set HomePageZone only when N=0, and have another default page template with a different Zone SearchPageZone which you set whenever N <> 0.
The HomePageZone could still be set to only trigger when N=0 (only on the home page) whilst the other page template could also be used to create a default layout elsewhere than the home page. Usually you would deply these into two different Rule Groups where the Home page group would be placed beneath the other groups in Dev Studio.
Rule limit would usually be 1 on the Zone for this approach.