发布
社区首页 >问答首页 >SOLR:具有字母范围的字段

SOLR:具有字母范围的字段
EN

Stack Overflow用户
提问于 2014-06-16 08:59:19
回答 1查看 48关注 0票数 0

我正试着把一个字段作为一个范围来搜索。确切地说,我在这个领域中有这样的元素:

代码语言:javascript
代码运行次数:0
复制
A-C
Sch-So

搜索Banana (B在and范围内)Sch返回第一个文档,搜索School (Sch匹配Sch-So)应该传递第二个文档。而Salat不应返回上述任何一个。

为了使其更加复杂,可以在一个文档中包含多个值和范围,因此也可以使用以下内容。

代码语言:javascript
代码运行次数:0
复制
A, E-G
C, F, U
Sch-So, Pi-Re

这意味着,当搜索以A开头的任何东西或以E、F或G开头的任何东西时,都应该找到第一个项。

是否有可能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-19 17:06:29

在对文档进行索引之前,必须对它们进行预处理,因为Solr中没有办法将“香蕉”与“a”匹配。您应该从一个自定义令牌器开始,它在索引时将令牌注入令牌流。根据您的示例,这个令牌程序将向术语“and”的令牌流中注入'a‘、'b’和'c‘。

然后,使用solr.EdgeNGramFilterFactory分析器为查询项配置字段。您可以控制过滤器将创建哪些n克(例如,从side="front"minGramSize="1"maxGramSize="3"开始)。这将基本上把搜索词“香蕉”变成多个词'b','ba‘和'ban’。

查询术语“school”将导致索引中的n-克“s”、“sc”、“sch”,因此“school”与“sch”匹配。

查询术语'salat‘将导致n克's’、'sa‘、'sal’等,因此'salat‘与索引中的'sch’不匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24239942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档