是什么导致无效的核心名称?

What makes an invalid core name?

在为核心名称设计命名方案时,我尝试命名一个核心 "search/live" 并在尝试启动 solr 时收到此异常:

java.lang.RuntimeException: Invalid core name: search/live
    at org.apache.solr.core.CoreContainer.registerCore(CoreContainer.java:411)
    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:499)
    at org.apache.solr.core.CoreContainer.call(CoreContainer.java:255)
    at org.apache.solr.core.CoreContainer.call(CoreContainer.java:249)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

显然在核心名称中使用 / 会使它无效。使核心名称无效的受限字符是什么?我似乎找不到任何关于此的文档。

核心名称的有效字符似乎没有记录。根据 Solr 4.10.4 中 org.apache.solr.core.CoreContainer#registerCore(String, SolrCore, boolean) 的来源,唯一无效的字符是:

  • 正斜杠:/
  • 反斜杠:\

以下字符会导致管理界面和执行一般查询时出现问题:

  • 冒号::