我使用的查询是q=name:"william test bay"~2
。
Schema.xml具有以下内容:
<field name="name" type="text_en" indexed="true" stored="true"/>
以下两个是我想要返回的响应,但实际上没有返回结果:
"response": {
"numFound": 2,
"start": 0,
"docs": [
{
"id": "3",
"name": "william bay",
"_version_": 1561163645757423600
},
{
"id": "4",
"name": "william bay photography",
"_version_": 1561163645757423600
}
]
}
我想知道原因。例如,我想匹配&#34; william test bay&#34;到威廉湾&#34;。我认为编辑距离是1,只是删除术语&#34;测试&#34;?实际上,即使name:"william test bay"~1000
也无效。
目前使用Solr 4.10.3。这是Cloudera Search使用的,所以我无法升级它。
答案 0 :(得分:1)
在Proximity中,所有短语查询关键字都必须存在于文档中。在您的情况下,测试关键字不存在。这就是为什么你没有得到任何结果。
邻近搜索会查找彼此相距特定距离的字词。
此处引用的距离是匹配指定短语所需的字词移动次数。但不要从短语查询中删除关键字
[实施例]
text : william bay photography
query : william photography
要匹配上述查询距离必须为1。因为搜索字符串只需移动一个单词即可与文本匹配。
q:"william photography"~1
答案 1 :(得分:1)
您可以尝试使用查询:q=name:(william test bay)