0

我正在使用香蕉仪表板为我的 solr 索引数据生成非时间序列仪表板。索引数据中的“ location”字段无法正确显示在香蕉仪表板构面小部件中,名称如“ San Francisco”、“ New York”显示为“ San”和“ Francisco”以及“ New”和“ York”。

但是,当我交叉检查我的 Solr 查询结果时,这些字段正确显示为单个实体“旧金山”和“纽约”。

在 Solr 核心中,managed-schema.xml文件具有以下条目:

<field name="content" type="opennlp-en-tokenization" indexed="true" stored="true" multiValued="true"/>
<field name="person" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="organization" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="location" type="text_general" indexed="true" stored="true" multiValued="true"/>

知道我哪里可能出错了吗?

Banana 仪表板的 Loc 名称具有空间错误地标记为两个不同的位置

Banana 仪表板的 Loc 名称具有空间错误地标记为两个不同的位置

具有 Loc 名称的 Solr 仪表板具有正确显示为单个位置的空间 具有 Loc 名称的 Solr 仪表板具有正确显示为单个位置的空间

4

1 回答 1

1

您的位置字段将 text_general 作为其标记器。这会将输入拆分为多个标记,最终得到您显示的结果。

将其更改为字符串字段或使用 KeywordTokenizer(如果您需要以任何方式处理它)。如果您希望仍然能够使用该字段进行搜索而不必进行精确匹配,请将另一个字段定义为字符串字段和构面,然后使用 copyField 将内容复制到两个字段中。

原因是分面使用标记来生成计数,而不是字段的存储文本(这是您在查询文档时看到的)。令牌不是直接可见的(.. 除非在分面或检索术语时),但您可以在 Solr Admin 下的“分析”页面下查看您的内容是如何处理的以及您的输入最终是什么令牌。

于 2019-01-21T10:55:30.220 回答