【问题标题】:A good starting point for a solr schema.xmlsolr schema.xml 的良好起点
【发布时间】:2016-06-07 11:22:32
【问题描述】:

我正在尝试开始使用 solr。我的想法是只对一个文本字段进行索引(和搜索)并从中扩展。这是我到目前为止所得到的:

<?xml version="1.0" encoding="UTF-8" ?>
<schema>
<types>
<fieldType name="long" class="solr.TrieLongField"/>
<fieldType name="text" class="solr.TextField"/>
</types>
<fields>
<field name="_version_" type="long" multiValued="false"/>
<field name="topic" type="text"/>
</fields>
</schema>

solr 对 _version_ 字段的需求已经让我发疯了,尽管文档说它不是强制性的。无论如何,现在我收到了这个错误:

org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Unknown FieldType: 'string' used in QueryElevationComponent

我只是不明白这是什么意思。

接下来我尝试将包含的 managed-schema 重命名为 schema.xml。这并没有给我任何错误,但是这个文件有超过 1000 行!无数的类型、字段、copyFields 等等。现在我想我可以尝试根据需要剥离该文件,但我宁愿另辟蹊径并建立一个。

因此我的问题是:是否有一个最小的、工作的 schema.xml 可以用来构建?

【问题讨论】:

    标签: solr


    【解决方案1】:

    问题在于 solrconfig.xml 中预配置的所有其他内容。我刚刚推送了a minimal example 用于我的培训项目。它适用于 Solr 5.5,而不是 6.0,但它应该为您提供一个非常好的方向。

    这使用静态模式方法,而不是托管模式之一,这是 Solr 6 中的默认设置。因此,这是需要牢记的差异之一。

    【讨论】:

      【解决方案2】:

      错误消息是由启用了 queryEleveationComponent 引起的,这需要名为 string 的字段类型才能工作。您可以禁用该字段,或添加一个字符串类型(无论如何您可能都需要):

      <fieldType name="string" class="solr.StrField" />
      

      StrFields 没有被标记化(分成几部分)或以任何方式处理,因此它们非常适合过滤和精确搜索。

      【讨论】:

      • 谢谢,现在我已经进入下一个关于没有 uniqueKey 字段的错误。我想我可以解决这个问题,但接下来会发生什么?我对一些关于我应该如何开始的指导更感兴趣。我担心如果我继续修复一个又一个错误,我可能会得到一个非常混乱的架构,甚至没有学到太多东西。
      • reference guide 是合适的地方。使用与 Solr 捆绑在一起的示例之一作为起点通常也是一个好主意。但是一步一步地做这件事也应该是一种学习体验,你可能会在添加新字段并了解事情的工作原理之后重写架构。
      猜你喜欢
      • 2013-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 2023-03-27
      相关资源
      最近更新 更多