【问题标题】:Solr - Searching incomplete numbersSolr - 搜索不完整的数字
【发布时间】:2013-07-03 08:50:33
【问题描述】:

我有一个 solr 架构,我将邮政编码存储在文本字段类型中。

但 solr 只有在我搜索整个邮政编码时才会得到结果。 如果邮政编码不完整,它不会得到任何结果。

例如:

我输入 12345 - solr 得到邮政编码 12345。

我输入 1234 - solr 没有得到任何结果。

有人知道如何解决这个问题吗?

我必须在该字段或其他任何地方使用任何标记器吗?

感谢帮助

【问题讨论】:

  • 在末尾使用通配符搜索,即q=field:1234*

标签: solr


【解决方案1】:

检查EdgeNGramFilterFactory 过滤器

<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="25" side="front"/>

EdgeNGramFilterFactory 为令牌生成边缘图,例如

12345 会生成 -> 12, 123, 1234, 12345 .....

您可以在索引时使用它来生成令牌。 因此,当您搜索1234 时,带有12345 的文档将匹配

【讨论】:

  • 我建议仅将 EdgeNGramFilterFactory 用于索引时间分析器。
  • 是的,如答案中所述,仅用于索引时间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
相关资源
最近更新 更多