首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solr MM (Min Match)与q.alt行为

Solr MM (Min Match)与q.alt行为
EN

Stack Overflow用户
提问于 2014-08-28 19:24:53
回答 1查看 1.2K关注 0票数 0

我正在尝试实现一个搜索,迭代在我们的网站上的新注册,并寻找副本。

对于原型开发和播放,我已经将测试用户编入了字段索引。

  • firstName
  • lastName
  • 城市

假设我们有一个新用户,他的名字叫罗伯·刘易斯,他住在西雅图。我想做一个MM搜索,所有现有的用户,至少匹配2个的firstName:Rob :Lewis市:西雅图。

所以我想找到

  • 罗布·莱维塞斯
  • 所有住在西雅图的强盗
  • 所有生活在西雅图的刘易斯

我想我应该可以用dismax (或者edismax)用

  • q.alt=firstName:Rob最新名称:刘易斯市:西雅图
  • mm=2

但这似乎行不通。MM对结果没有影响,我只得到相同的列表,就好像我没有指定MM (即所有的Robs、所有Lewises和所有生活在西雅图的用户)。

此外,为了测试,我尝试了mm=100%,我希望它只匹配在西雅图的罗伯刘易斯。然而,它再次匹配所有的抢劫犯,所有的路易塞斯和所有生活在西雅图的用户)。

我怎样才能实现我想要的结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-28 19:58:45

除非我误解了您的问题,否则没有必要使用q.alt --您可以直接与defType=edismax一起使用q。我将按照说明(使用q.alt)回答问题的其余部分。

默认情况下,q.alt参数使用Lucene查询语法,而mm只被识别为(e)dismax参数。

还可以通过q.alt命令Solr使用localParams选项的(e)dismax解析器:

代码语言:javascript
复制
q.alt={!dismax}firstName:Rob lastName:Lewis city:Seattle

还可以通过localparams提供特定的mm值:

代码语言:javascript
复制
q.alt={!dismax mm=2}firstName:Rob lastName:Lewis city:Seattle
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25556519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档