Solr短语是否依赖于斜率顺序



使用Solr 4.7.0附带的默认示例文档和模式(带有ipod等)

带有短语斜率的查询,如:

http://localhost:8983/solr/collection1/select?wt=json&q=features:%22car%20white%22~4&fl=id,features&omitHeader=true

给我两个匹配的文档:

{
  "response":{"numFound":2,"start":0,"docs":[
      {
        "id":"F8V7067-APL-KIT",
        "features":["car power adapter, white"]},
      {
        "id":"IW-02",
        "features":["car power adapter for iPod, white"]}]
  }}

如果使用相同的斜率值4将"car white"更改为"white car",则只会得到结果中的第一个文档。看看browse中的解释,对于两个查询返回的文档,它说:

(MATCH) weight(features:"white car"~4 in 3)

对于另一个文档,在第一个例子中,它表示..."car white"~4 in 4),但将顺序更改为"white car"与文档不匹配。

这似乎暗示它"多少"依赖于顺序…但不是真的吗?有人能解释一下这是怎么回事吗?

当您交换这些单词时,编辑距离增加。从本质上讲,swap会在编辑距离上增加2(因为第一次编辑会将单词放在另一个单词的顶部)。

对于查询"car white",您有

  • "车载电源适配器,白色" -距离= 2(多2个字)
  • "车载iPod电源适配器,白色" -距离= 4(多4个字)

与"white car"搭配:

  • "汽车电源适配器,白色" -距离= 4(1个交换,2个额外的字)
  • "车载iPod电源适配器,白色" -距离= 6(1个交换,4个额外的单词)

由于slop在您的查询中设置为4,因此最后的结果具有太高的编辑距离,并且不显示。PhraseQuery.setSlop()记录了短语斜率的行为,供进一步阅读。

最新更新