Solr 的香蕉仪表板未正确标记位置名称

Banana Dashboard For Solr Not Tokenizing Location Names Correctly

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

然而,当我交叉检查我的 Solr 查询结果时,这些字段正确显示为单个实体 "San Francisco" 和 "New York".

在 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"/>

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

带有 Loc 名称的 Banana 仪表板 Space 被错误地标记为两个不同的地方

具有 Loc 名称的 Solr 仪表板 Space 正确显示为一个位置

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

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

原因是 faceting 使用 tokens 来生成计数,而不是 stored text 作为字段(这是什么您在查询文档时会看到)。标记不是直接可见的(.. 分面或检索术语时除外),但您可以在 Solr Admin 下的 "Analysis" 页面下看到您的内容是如何处理的以及您的输入最终出现的标记是什么。