我正在尝试实施一个搜索,迭代我们网站上的新注册并查找重复项。
对于原型设计和游戏,我使用字段
为我的测试用户编制了索引所以说我们有一个新用户,他的名字叫Rob Lewis,他住在西雅图。我想对所有匹配至少2个firstName的现有用户进行MM搜索:Rob lastName:Lewis city:Seattle。
所以我想找到
我认为我应该可以用dismax(或edismax)和
来做到这一点但它似乎不起作用。 MM对结果没有影响,我只是得到了相同的列表,好像我没有指定MM(即所有Robs,所有Lewises和所有住在西雅图的用户)。
另外只是为了测试我尝试了mm = 100%,我希望只能匹配西雅图的Rob Lewis。然而它再次匹配所有Robs,所有Lewises和所有住在西雅图的用户)。
如何达到理想的效果?
答案 0 :(得分:1)
除非我误解了您的问题,否则无需使用q.alt
- 您可以q
直接使用defType=edismax
。我将回答问题的其余部分(使用q.alt
)。
q.alt
参数默认使用Lucene查询语法,mm
仅被识别为(e)dismax参数。
您可以指示Solr使用(e)dismax解析器以及q.alt选项以及localParams:
q.alt={!dismax}firstName:Rob lastName:Lewis city:Seattle
您还可以通过localparams提供特定的mm值:
q.alt={!dismax mm=2}firstName:Rob lastName:Lewis city:Seattle