有没有solr api来读取solr schema.xml?我需要它的原因是solr facet不向后兼容。如果索引没有定义字段A,但程序试图为字段A生成构面,则所有构面都将失败。因此,我需要在运行时中检查索引中的索引字段,并动态生成构面。
答案 0 :(得分:3)
您可以使用http://localhost:8983/solr/admin/file/?contentType=text/xml;charset=utf-8&file=schema.xml
它是原始xml,因此必须解析它以获取所需的信息。
但是,如果你的程序生成了无效的方面,也许你应该修复程序而不是试图解决这个问题。
答案 1 :(得分:3)
另一种方法是使用LukeRequestHandler。它以Luke工具为模型,用于诊断Lucene索引的内容。 query / admin / luke?show = schema,将显示模式。但是,您需要在solrconfig.xml中定义它,如下所示:
<requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" />
LukeRequestHandler link
的文档答案 2 :(得分:3)
从Solr 4.2开始,Schema REST API允许您通过以下方式获取模式:
http://localhost:8983/solr/schema
或核心名称:
http://localhost:8983/solr/mycorename/schema
自Solr 4.4起,您也可以修改架构。
答案 3 :(得分:2)
实际上你有Schema API。 Solr架构API允许使用REST API获取有关schema.xml的信息
在Solr 4.2和4.3中,它只允许GET(只读)访问,但是在 可以将Solr 4.4,新字段和copyField指令添加到模式中。 Future Solr版本将扩展此功能以允许更多架构 要更新的元素
API入口点
/collection/schema: retrieve the entire schema
/collection/schema/fields: retrieve information about all defined fields, or create new fields with optional copyField directives
/collection/schema/fields/name: retrieve information about a named field, or create a new named field with optional copyField directives
/collection/schema/dynamicfields: retrieve information about dynamic field rules
/collection/schema/dynamicfields/name: retrieve information about a named dynamic rule
/collection/schema/fieldtypes: retrieve information about field types
/collection/schema/fieldtypes/name: retrieve information about a named field type
/collection/schema/copyfields: retrieve information about copy fields, or create new copyField directives
/collection/schema/name: retrieve the schema name
/collection/schema/version: retrieve the schema version
/collection/schema/uniquekey: retrieve the defined uniqueKey
/collection/schema/similarity: retrieve the global similarity definition
/collection/schema/solrqueryparser/defaultoperator: retrieve the default operator
<强>实施例强>
输入 获取所有字段的列表。
curl http://localhost:8983/solr/collection1/schema/fields?wt=json
输入 以JSON格式获取整个架构。
curl http://localhost:8983/solr/collection1/schema?wt=json
更多信息here: apache-solr-ref-guide-4.5.pdf(搜索架构API)