无法创建核心 [collection_shard1_replica_n1] 原因:找不到资源“synonyms.txt”

问题描述

我运行如下的 create_collection 命令

create_collection [-c collectionName] [-n configName] [-d configDir] [-shards #] [-replicationFactor #] [-p port] [-V]

我在日志中收到以下错误

2021-07-20 12:33:53.672 ERROR (qtp232307208-14) [   ] o.a.s.h.RequestHandlerBase org.apache.solr.common.solrException: Error CREATEing SolrCore 'collection_shard1_replica_n1': Unable to create core [collection_shard1_replica_n1] Caused by: Can't find resource 'synonyms.txt' in classpath or '/configs/<configname>',cwd=C:\solr-8.6.2\server
  at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1312)
  at org.apache.solr.handler.admin.CoreAdminoperation.lambda$static$0(CoreAdminoperation.java:95)
  at org.apache.solr.handler.admin.CoreAdminoperation.execute(CoreAdminoperation.java:367)
...
  at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
  at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
  at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
  at java.lang.Thread.run(UnkNown Source)
Caused by: org.apache.solr.common.solrException: Unable to create core [collection_shard1_replica_n1]
  at org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1408)
  at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1273)
... 47 more
Caused by: org.apache.solr.common.solrException: Could not load conf for core collection_shard1_replica_n1: Can't load schema managed-schema: org.apache.solr.core.solrResourceNotFoundException: Can't find resource 'synonyms.txt' in classpath or '/configs/<configname>',cwd=C:\solr-8.6.2\server
  at org.apache.solr.core.ConfigSetService.loadConfigSet(ConfigSetService.java:89)
  at org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1381)
... 48 more
Caused by: org.apache.solr.common.solrException: Can't load schema managed-schema: org.apache.solr.core.solrResourceNotFoundException: Can't find resource 'synonyms.txt' in classpath or '/configs/<configname>',cwd=C:\solr-8.6.2\server
  at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:610)
  at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:181)
  at org.apache.solr.schema.ManagedindexSchema.<init>(ManagedindexSchema.java:105)
  at org.apache.solr.schema.ManagedindexSchemaFactory.create(ManagedindexSchemaFactory.java:178)
  at org.apache.solr.schema.ManagedindexSchemaFactory.create(ManagedindexSchemaFactory.java:46)
  at org.apache.solr.core.ConfigSetService.createIndexSchema(ConfigSetService.java:146)
  at org.apache.solr.core.ConfigSetService.loadConfigSet(ConfigSetService.java:84)
... 49 more
Caused by: org.apache.solr.common.solrException: org.apache.solr.core.solrResourceNotFoundException: Can't find resource 'synonyms.txt' in classpath or '/configs/<configname>',cwd=C:\solr-8.6.2\server
  at org.apache.solr.schema.ManagedindexSchema.informResourceLoaderAwareObjectsInChain(ManagedindexSchema.java:1344)
  at org.apache.solr.schema.ManagedindexSchema.informResourceLoaderAwareObjectsForFieldType(ManagedindexSchema.java:1204)
  at org.apache.solr.schema.ManagedindexSchema.postReadInform(ManagedindexSchema.java:1180)
  at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:606)
... 55 more
Caused by: org.apache.solr.core.solrResourceNotFoundException: Can't find resource 'synonyms.txt' in classpath or '/configs/<configname>',cwd=C:\solr-8.6.2\server
  at org.apache.solr.cloud.ZkSolrResourceLoader.openResource(ZkSolrResourceLoader.java:122)
  at org.apache.lucene.analysis.synonym.SynonymGraphFilterFactory.loadSynonyms(SynonymGraphFilterFactory.java:179)
  at org.apache.lucene.analysis.synonym.SynonymGraphFilterFactory.inform(SynonymGraphFilterFactory.java:154)
  at org.apache.solr.schema.ManagedindexSchema.informResourceLoaderAwareObjectsInChain(ManagedindexSchema.java:1342)
... 58 more

我正在尝试使用外部动物园管理员创建一个独立的 Solr。我计划在我开始工作后复制它。我使用了之前设置中的自定义配置。

解决方法

我用这个解决了这个问题。需要使用以下命令将配置上传到 Zookeeper

bin/solr zk upconfig -n <name for configset> -d <path to directory with configset>

在我这样做之后,它就像一个魅力,没有任何问题。