AEM Solr集成:作为Oak Oak的Remote Solr索引问题:“未定义的字段catch_all”

时间:2019-02-26 13:29:56

标签: solr aem cq5 solr4 aem-6

我已经将AEM与远程Solr集成为“ Solr作为Oak索引”,并且在运行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索引,那时我正面临这个问题。

1 个答案:

答案 0 :(得分:1)

Solr 日志中,很明显,获取 catch_all 字段不存在或定义不正确存在一些问题(也请检查字段类型)。

  • 要想索引数据,您应该创建一个文档。
  • 文档由一个字段组成。
  • 字段具有类型和属性。
  • 字段类型定义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