2016-09-06 1335 views
0

我将索引可能在其全文本体中包含任何特殊/保留字符的文档。例如 “PDF/A是可移植文档格式的ISO标准化版本...”elasticsearch - 全文搜索带有特殊/保留字符的单词

我希望能够搜索pdf/a而不必转义正斜杠。

我应该如何分析我的查询字符串以及我应该使用哪种类型的查询?

+0

你可以分享你的尝试?你的映射和查询看起来是什么样的起点? – eemp

回答

0

默认的standard分析器将标记一个这样的字符串,以便“PDF”和“A”是单独的标记。 “A”令牌可能会被停止令牌过滤器截断(请参阅Standard Analyzer)。因此,如果没有任何自定义分析仪,您通常只会收到任何带有“PDF”的文档。

您可以尝试使用standard分析仪创建您自己的分析仪,其中包含Mapping Char Filter。这个想法可能会在索引和查询时间将“PDF/A”转换为“pdf_a”之类的东西。一个简单的匹配查询就可以正常工作。但这是一个非常简单的方法,您可能想考虑如何在内容中使用“/”字符,并使用稍微复杂的正则表达式过滤器,这也不是完美的解决方案。

对不起,我完全错过了你必须逃避角色的观点。如果事实证明这对你没有帮助,你能否详细说明你的用例?