首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有最大项间距离的multiValued域的Solr模糊搜索

具有最大项间距离的multiValued域的Solr模糊搜索
EN

Stack Overflow用户
提问于 2012-08-15 15:49:25
回答 2查看 1.2K关注 0票数 3

你好,stackOverflowers

我在Solr文档集合中有一个字段,名为names_txt --这是一个multiValue="true“字段。

此字段包含文档中关联人员的所有名称。

我希望既能做模糊搜索,又能同时限制各词之间的匹配项数。

查询

代码语言:javascript
复制
names_txt:("markus foss"~2)

将返回所有文件,在那里您可以找到术语markus和foss,在它们之间有最多2个术语。

但是,当我以模糊的方式搜索,并且想要指定匹配之间的最大词条数时,我无法正确地理解语法。

查询:

代码语言:javascript
复制
names_txt:(markus~0.7 foss~0.7)

这确实有效,但返回假正误,因为它将返回一个文档,其中一个值为"markus“,另一个值为"foss somethingElse”。

我想写的是:

代码语言:javascript
复制
(markus~0.7 foss~0.7)~2
  • 但这种语法在solr中是非法的。

有谁能解决我的问题吗?

EN

回答 2

Stack Overflow用户

发布于 2015-04-30 08:51:33

由于在一个查询项中,Solr可以处理单词距离限制或模糊搜索约束,因此我们需要两个术语:

代码语言:javascript
复制
names_txt:("markus foss"~2) AND names_txt:(markus~0.7 foss~0.7)

请注意,用浮点数量化模糊度是不可取的。在内部,lucene将float数字转换为0到2之间的int,所以我们应该使用这个整数(Damereau )从搜索词开始编辑距离。因此,我最后的建议是:

代码语言:javascript
复制
names_txt:("markus foss"~2) AND names_txt:(markus~1 foss~1)

(对于那些感兴趣的人,可以在float的末尾找到不推荐的、有点古怪的函数,该函数将相似性int转换为编辑距离int。)

票数 1
EN

Stack Overflow用户

发布于 2012-08-15 18:00:51

我认为使用SpanQuery可以做到这一点,问题是Solr中通常的查询解析器不支持它们。看看这篇文章,它提到了那些支持跨领域的内容:环绕声、Xml和Qsol。但请检查当前solr版本中每个版本的状态。

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

https://stackoverflow.com/questions/11972643

复制
相关文章

相似问题

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