我在Windows 7上使用Solr 6.1.
我从管理界面UI看到了我的收藏文件,里面有一个managed-schema
文件.
当我尝试搜索(使用Notepad ++)我的Solr目录,其中包含来自托管模式文件的一行时,它什么都没找到.
我还尝试更改managed-schema
Solr目录中的大多数(如果不是全部)文件,并且在重新加载核心后仍然没有应用我的更改(并且managed-schema
管理UI中的文件内容保持不变).
有人可以向我解释一下我在管理界面UI中看到的这个文件是什么?它是真实文件还是虚拟文件?
我尝试做什么 - 如果重要 - 是让一些字段不是多值的.似乎Solr喜欢因为某种原因使它们全部变为多值(管理UI的managed-schema
文件中包含一些<field name="fieldname" type="strings"/>
,所以我认为这会导致问题 - 我会尝试string
在那里使用),所以我正在努力改变它的配置.但是,似乎文件名,文件路径等等都在从版本变为版本.所以,我甚至找不到架构配置路径.很混乱的东西.:(
有人可以帮忙吗?
编辑:
基于我schema.xml
在Solr文件夹中找不到单个配置文件的事实,我猜这个文件现在已经过时了...我想在这个版本的Solr中尝试使用这样的文件是没有意义的...
更新:
在深入了解Solr的(无用且误导性)文档页面之后,我得到了以下内容:
https://mail-archives.apache.org/mod_mbox/lucene-solr-user/201509.mbox/
https://mail-archives.apache.org/mod_mbox/lucene-solr-user/201509.mbox/
所以,如果那是真正的文档,我想我应该首先找到一种方法来获取我的zookeeper正在监听的端口并在那里上传我的配置文件.Dandy,除了我没有在adminUI中看到ZooKepeer端口在ANYWHERE中列出的事实.我也没有设置任何ZooKeeper.我希望一个默认存在... :(
更新2:
https://wiki.apache.org/solr/SolrCloud
默认情况下,嵌入式Zookeeper服务器在Solr端口加上1000运行,因此9983.
这些信息似乎解决了我的工作问题......
只需将managed-schema重命名为schema.xml即可. 然后重新加载核心.
如果您有一个使用ClassicIndexSchemaFactory的现有Solr集合,并且希望转换为使用托管架构,则可以简化修改solrconfig.xml以指定ManagedIndexSchemaFactory的使用.重新启动Solr并检测到schema.xml文件存在,但managedSchemaResourceName文件(即:"managed-schema")不存在时,现有的schema.xml文件将重命名为schema.xml.bak及其内容被重写到托管模式文件.如果您查看生成的文件,您将在页面顶部看到:
请仔细阅读.
从schema.xml切换到托管架构
使用托管架构的替代方法是显式配置ClassicIndexSchemaFactory.ClassicIndexSchemaFactory需要使用schema.xml配置文件,并且不允许在运行时对Schema进行任何编程更改.schema.xml文件必须手动编辑,并且仅在加载集合时才加载.
<schemaFactory class="ClassicIndexSchemaFactory"/>
Run Code Online (Sandbox Code Playgroud)
https://cwiki.apache.org/confluence/display/solr/Schema+Factory+Definition+in+SolrConfig
更新:
更改为手动编辑的schema.xml
如果已启用Solr并启用了托管架构,并且您希望切换到手动编辑schema.xml文件,则应执行以下步骤: