使用Solr 4.7.0附带的默认示例docs和schema(带有ipods的那个).
带有短语slop的查询,例如:
http://localhost:8983/solr/collection1/select?wt=json&q=features:%22car%20white%22~4&fl=id,features&omitHeader=true
Run Code Online (Sandbox Code Playgroud)
给我2个匹配的文件:
{
"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"]}]
}}
Run Code Online (Sandbox Code Playgroud)
如果我使用相同的slop值4从"car white"更改为"white car",我只得到结果中的第一个文档.查看浏览中的说明,对于在两个查询中返回的文档,它说:
(MATCH) weight(features:"white car"~4 in 3)
Run Code Online (Sandbox Code Playgroud)
对于另一个文档,在第一种情况下说,..."car white"~4 in 4)但将订单更改为"白色汽车"与文档不匹配.
这似乎意味着它依赖于"某种程度"......但不是真的吗?谁能解释一下这里发生了什么?
当您交换这些单词时,编辑距离会增加.基本上,交换将编辑距离加2(因为第一次编辑将单词移到另一个上面).
查询"car white"你有
与"白色汽车"你有:
由于在查询中将slop设置为4,因此最后一个结果的编辑距离太高,并且不会出现. PhraseQuery.setSlop()记录短语slop的行为,以供进一步阅读.
| 归档时间: |
|
| 查看次数: |
963 次 |
| 最近记录: |