Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.
SOLVED

Excerpt/hit.getExcerpt() is giving {relevant_links} as value when using QueryBuilderAPI

Avatar

Level 3

I am Using Query builder API for fulltext search, When using hits.getExcerpt() i am getting value as {relevant_links} for few pages. But when checking the same under http://localhost:4502/libs/cq/search/content/querydebug.html  i was able to see proper excerpt for the pages. I have set setExcerpt to true while constructing the query before executing is there something am missing?

1 Accepted Solution

Avatar

Correct answer by
Level 3

Strange issue, double check your content most likely some content issue.

View solution in original post

12 Replies

Avatar

Level 10

Hi Kamal,

Are you getting it for all the pages or only few ? Can you post your query and sample output ?

Avatar

Level 10

Please post - as Lokesh suggests - your full query. The community will help more given more details here.

Avatar

Level 3

bsloki​,

Please find the query snippet

Map<String, String> map = new HashMap<>();

  map.put("type", "nt:unstructured");

  map.put("fulltext", fulltextSearchTerm);

  map.put("path", localeRootPath);

  map.put("p.excerpt", "true");

  map.put("orderby", "@jcr:score");

  map.put("orderby.sort", "desc");

  map.put("p.limit", "-1");

  final QueryBuilder queryBuilder = getSling().getService(QueryBuilder.class);

  Query q = queryBuilder.createQuery(PredicateGroup.create(map),

                      getSling().getRequest().getResourceResolver().adaptTo(Session.class));

   q.setExcerpt(true);

  result = q.getResult();

for (Hit hit : result.getHits()) {

String excerpt = hit.getExcerpt(); //output is // {relevant_links}

}

Avatar

Level 10

Hi,

I see you have already set "p.excerpt":"true", so you dont have to say q.setExcerpt(true); again.. you can remove that.

Also, is this output consistent for every result or only for few result ?

Avatar

Level 3

Yeah, I just added to check, Its not consistent, When tried the same with querydebug.html i was able to see consistent result, but here for some pages am getting proper result but for some pages i am not getting excerpt.

Avatar

Level 10

That doesnt sound right ! If you are getting right result in querydebug.hml, you should get the same with hit.getExcerpts aswell.. Did you see if there is any difference in the content between the pages where the correct excerpt is coming with the content on the other page ?

Can you provide a package with the sample content where you are seeing the wrong excerpt so that I can try to debug ?

Avatar

Level 10

Also, raise a daycare ticket if you will not be able to share the content package here..

Avatar

Level 3

bsloki​ thank you for the inputs, will raise a Day care ticket.

Avatar

Level 3

I am not supposed to share the content package.

Avatar

Level 3

One more thing is that when a page is having a text="Shipping" and if my search term is "ship", I am getting "{relevant_link}" as excerpt but when I Search "Shipping" i am getting a proper excerpt , Is there a way to make the Query to search exact word?

Avatar

Correct answer by
Level 3

Strange issue, double check your content most likely some content issue.

Avatar

Level 3

yeah its an content issue, got it.

Thank you bsloki​ , chandu t