首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果Solr与查询字符串的50%匹配,如何查询Solr以获取文档?

如果Solr与查询字符串的50%匹配,如何查询Solr以获取文档?
EN

Stack Overflow用户
提问于 2020-01-10 16:32:46
回答 2查看 139关注 0票数 1

我使用的是Solr 7.6,文档结构如下:

代码语言:javascript
复制
{
    "source_ln":"en",
    "source_text":"the sky is blue",
    "target_ln":"hi",
    "target_text":"आसमान नीला है",
},
{
    "source_ln":"en",
    "source_text":"the sky is also called the celestial sphere",
    "target_ln":"hi",
    "target_text":"आकाश को आकाशीय क्षेत्र भी कहा जाता है",
}

所有字段都是使用StandardTokenizerFactory标记器定义的。

当我查询“source_text”:“天空”时,

结果集应该只包含第一个文档。

在第二个文档中,字段“source_text”:“天空也称为天球”包含8个术语,而查询字段“source_text”:“天空”仅包含2个术语,因此不满足至少50%的匹配条件,因此第二个文档将不在结果集中。

有没有办法获得匹配至少50%的查询字段术语/标记的文档?

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2020-01-10 21:18:33

您可以将请求处理程序设置为使用(e)dismax查询解析器,例如使用defTypeparameter,例如。?q=...&defType=dismax

使用dismax解析器,只需设置mm=50%,就可以根据需要使用mm (Minimum Should Match)参数。

票数 1
EN

Stack Overflow用户

发布于 2020-01-10 17:17:41

您可以通过执行以下步骤来实现这些功能。

  • 创建单独的字段在您的模式名称"source_text_fifty",参数(indexing=true,storing=false,不应用StandardTokenizerFactory语法类型或更好地使用solr.KeywordTokenizerFactory创建单独的数据类型字段)。
  • 现在,计算您的输入的50%在索引文档期间,并存储在"source_text_fifty“中的计算数据与上述逻辑所有现有的数据。
  • 使用source_text_fifty运行查询:“the sky”。现在您只有一个50%匹配的数据。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59677988

复制
相关文章

相似问题

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