【问题标题】:SOLR - how to do a fuzzy search on booleansSOLR - 如何对布尔值进行模糊搜索
【发布时间】:2011-03-16 00:53:42
【问题描述】:

如果我的索引包含三个布尔字段:a、b 和 c...
我想搜索:“a=True, b=False, c=True”,SOLR 应该返回所有条目,它们的分数应该代表整个查询的匹配程度。

例如

a=T, b=F, c=T, score=1.0  
a=T, b=T, c=T, score=0.6  
a=T, b=T, c=F, score=0.5  

这可能吗?

【问题讨论】:

    标签: solr lucene fuzzy-search


    【解决方案1】:

    假设 true=1,false=0,有几个想法:

    • 在客户端构建每个组合及其相应的提升,例如:

      (a:1 AND b:0 AND c:1) OR (a:1 OR b:1 OR c:1)^0.6 OR...
      
    • 使用dist function query,例如:dist(1, a,b,c, 1,0,1)(需要Solr 1.5+)(我没用过这个,你可能要multiply这个-1)

    【讨论】:

    • 选项 1 会很棒,但不幸的是我有超过 90 个这些布尔字段...但是选项 2 似乎是一个真正的好选择(我使用的是 sqedist,它不采用平方根应该足够了,因为我只使用 1 和 0)...
    猜你喜欢
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 2013-05-15
    • 2013-02-18
    • 1970-01-01
    相关资源
    最近更新 更多