【发布时间】:2019-07-21 05:30:39
【问题描述】:
Solr 4.9.1(无法更新,因为这是一个 Silverstripe 插件)。问题出在前端,但以下问题直接来自 Solr 查询面板。我对 Solr 相当陌生,到目前为止,我一直在研究关于 Tokenizers 和 Filters 的建议(但在这个问题的上下文中无法理解这些建议)和escaping(这似乎没有做任何事情)
这是我的调试输出示例:
现有文档中的字段值: 世界各地 - 飞行/航行
查询(前端): Fly/Sail
搜索结果: 0
调试输出:
"rawquerystring": "Fly/Sail",
"querystring": "Fly/Sail",
"parsedquery": "PhraseQuery(_text:\"fly sail fly sail\")",
"parsedquery_toString": "_text:\"fly sail fly sail\"",
"explain": {},
"QParser": "LuceneQParser"
最让我困惑的是为什么在解析的查询中加倍?用反斜杠转义正斜杠不会改变任何内容。
如果我搜索"Fly Sail",就会出现预期的结果。
编辑:我的配置:
<fields>
<field name='_documentid' type='string' indexed='true' stored='true' required='true' />
<field name='ID' type='tint' indexed='true' stored='true' required='true' />
<field name='_text' type='htmltext' indexed='true' stored='true' multiValued='true' />
<field name='VivaTour_TourName' type='text' indexed='true' stored='true' multiValued=''/>
<field name='VivaTour_TourDescription' type='htmltext' indexed='true' stored='true' multiValued=''/>
编辑 2:我的分析页面的此搜索的屏幕截图
【问题讨论】:
-
字段类型定义是什么(更改后是否重新索引)? Solr Admin 下的分析页面告诉您如何处理这些字段?这应该让您详细了解查询和索引内容是如何被解析的。
-
嗨@MatsLindh。我已经用我的架构的字段部分更新了我的问题。有问题的字段是“VivaTour_TourName”。也是我的分析页面的转储。我一直在试图理解它并阅读它,但我不遵循它。 lucene.apache.org/solr/guide/6_6/analysis-screen.html
-
查询中的
KRF步骤是复制输入标记的步骤。我不确定描述中的哪个过滤器,但您可以将鼠标悬停在KRF上以查看它是哪个过滤器。如果您包含htmltext字段类型的定义,也会很有帮助。分析页面的屏幕截图显示了VivaTour_TourName字段,但您正在搜索_text字段 - 这样会更相关。分析页面准确地向您显示过滤器链中每个步骤的查询或索引文本会发生什么。 -
@MatsLindh 谢谢。这是您拿起时删除 KRF 和下面的答案的混合体。