【问题标题】:how does solr detect multivalue fieldssolr 如何检测多值字段
【发布时间】:2017-02-22 07:11:52
【问题描述】:

我正在尝试使用 solr 索引数据。在 managment-shema 中,我将字段多值定义为 false,因此当我发布数据时,我收到错误消息,告诉 multiple values encountered for non multiValued field
所以我想了解的是 solr 如何检测多值字段,
例如:如果我有这个短语 aa bb cc dd 并且我想将它索引/存储为单个值,为什么 solr 会拒绝它。 我还在管理控制台中使用 Analysis 进行了一些测试,我发现如果该短语包含:' , ' ' ' 或 '/' solr 认为它是多个值,所以我猜有一个定义它的文件solr 如何检测多个值。
提前感谢您
编辑
这是导致问题的字段,来自我的 managed-shema:
<field name="name" type="text_general" indexed="true" stored="true" .multiValued="false"/>

【问题讨论】:

  • 您能向我们展示一个导致该错误的文档示例吗?如果你有类似的东西,它应该被认为是多值的:`` aa bbcc dd ``
  • 我正在使用 solr 给出的films.json 示例,这是导致问题的行:"name": "\"Weird Al\" Yankovic: The Ultimate Video Collection"。
  • 您能否展示给出该错误的字段的架构如何?通过查看films.json,它不应该认为它是多值的。

标签: solr


【解决方案1】:

您似乎混淆了多值字段和文本标记化过程。

多值字段是指您的客户向 Solr 提供值列表。它们被视为不同的并以数组结构返回。

管理 UI 的分析屏幕向您展示了标记化过程,这正是搜索引擎工作的原因。字段已存储(原始)表示以及索引的表示。索引的版本(如分析 UI 所示)是经过处理的版本,以实现快速搜索。

因此,如果将值“aa bb cc dd”作为字符串发送到 text_general 字段,将存储为一个值,但索引为标记 aabbccdd,然后您可以搜索 cc 并找到它。

【讨论】:

  • 你是对的,我对那部分有误解,但是solr如何检测多值字段??还有一件事,一个短语的索引和存储有什么区别,例如, aa bb cc dd 是否是多值的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多