Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.

AEM Solr integration: Remote Solr as an oak Index issue: “undefined field catch_all”

Avatar

Level 2

I have integrated AEM with remote Solr as, 'Solr as an Oak index' and when running solr queries, I could see all my content indexed and shown into remote Solr.

However when I run some AEM specific jcr queries in AEM for certain search application, In the AEM logs, I could see the request going through to solr to fetch content but the result is empty. In Solr logs following is the stack trace:

2019-02-26 13:09:56.093 ERROR (qtp1514322932-145) [ x:oak] o.a.s.h.RequestHandlerBase org.apache.solr.common.SolrException: undefined field catch_all
  at org.apache.solr.schema.IndexSchema.getDynamicFieldType(IndexSchema.java:1300)
  at org.apache.solr.schema.IndexSchema.getFieldType(IndexSchema.java:1252)
  at org.apache.solr.parser.SolrQueryParserBase.getWildcardQuery(SolrQueryParserBase.java:772)
  at org.apache.solr.parser.SolrQueryParserBase.handleBareTokenQuery(SolrQueryParserBase.java:508)
  at org.apache.solr.parser.QueryParser.Term(QueryParser.java:309)
  at org.apache.solr.parser.QueryParser.Clause(QueryParser.java:180)
  at org.apache.solr.parser.QueryParser.Query(QueryParser.java:101)
  at org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:90)
  at org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:152)
  at org.apache.solr.search.LuceneQParser.parse(LuceneQParser.java:50)
  at org.apache.solr.search.QParser.getQuery(QParser.java:140)

What am i doing wrong here ? Also what is official version of Solr which is supported on these types on integrations.

P.S: I have deleted the default oak index and I am just using the new solr oak index, which is when I are facing this issue.

5 Replies

Avatar

Level 10

Can you show the JCR Queries you are using. Aslo - we are running a session on AEM Queries in 30 mins.

Scott's Digital Community: [Webinar | February ] Ask the AEM Community Expert: Best practice to quer...

Avatar

Level 2

It is for any query we are getting this error.

An example of a query would be:

select [jcr:path], [jcr:score], * from [dam:Asset] as a where not([jcr:content/metadata/hiddenFromSearch] like 'true') and not([jcr:path] like '%/content/dam/test-cmi/locations%') and not([jcr:path] like '%/content/dam/test-cmi/images/slipsheet%') and not([jcr:path] like '%/content/dam/test-cmi/images/cover-art-images%') and not([jcr:path] like '%/content/dam/test-cmi/images/theme-images%') and not([jcr:path] like '%/content/dam/test-cmi/images/general-images%') and not([jcr:path] like '%/content/dam/test-cmi/images/banner-images%') and isdescendantnode(a, '/content/dam/test-cmi')

It seems to me that Solr is not able to get the right content for a given jcr query.

Avatar

Level 10

Seems like there could be an issue setting up SOLR and Indexing. I recommend that you watch this GEMS session where they cover this use case -- Solr as an Oak index for AEM

Avatar

Community Advisor

Hey Ajay,

Looking at the issue you are getting, it looks like you got some mis-config in Solr Schema Definition as dynamic field Solr was expecting to exist did not exist.

Regards,

Peter

Avatar

Level 2

I have done some research on this and found that there are 4 types of Search implementation possible with AEM:

Plain old oak
Solr embedded in Oak
Solr as an remote oak index
Solr - AEM restful integration.

Of all the four, the only recommended way by Adobe is the last one.