AEM Solr集成:Remote Solr as oak索引问题:“undefined field catch_all”

我已经将AEM与远程Solr集成为’Solr as a Oak index’,并且在运行solr查询时,我可以看到所有内容都被编入索引并显示在远程Solr中.

但是,当我在AEM中为某些搜索应用程序运行某些特定于AEM的jcr查询时,在AEM日志中,我可以看到请求通过solr获取内容,但结果为空.在Solr日志中,以下是堆栈跟踪:

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)

我在这做错了什么?此外,这些类型的集成支持Solr的官方版本是什么?

P.S:我删除了默认的oak索引,我只是使用新的solr oak索引,这是我遇到这个问题的时候.

最佳答案 从Solr日志中可以看出,获取不存在或未正确定义的catch_all字段存在一些问题(同时检查字段类型).

>要成为索引数据,您应该创建一个文档.
>文档由字段组成.
> Field有它的类型和属性.
>字段类型定义Solr如何解释字段中的数据以及如何查询字段.

检查您是否正确定义了上述所有内容.

更多关于字段类型:
https://lucene.apache.org/solr/guide/6_6/field-type-definitions-and-properties.html#field-type-definitions-and-properties

关于Solr作为Oak索引的更多信息:
https://helpx.adobe.com/experience-manager/kt/eseminars/gems/Solr-as-an-Oak-index-for-AEM1.html#main-pars_multi_column

点赞