1

我在Solr我的一个项目中使用 5.2.1,对/解析器的mm参数有一些疑问。dismaxedismax

问题:

  • mm考虑总输入项计数吗?文档说是,但是当我将其设置为 3 并输入单个术语时,它仍然可以获得记录,因此似乎与输入术语总数无关。
  • 的默认值是mm多少?文档说它是100%,但在我的查询测试中,它似乎是1。顺便说一句,我没有找到mminsolrconfig.xmlschema.xml.

有什么帮助吗?谢谢。


@更新:

第一个问题的查询网址:

http://localhost:8983/solr/demo/select?q=new+york&start=0&wt=json&indent=true&defType=edismax&qf=title&mm=3&stopwords=true&lowercaseOperators=true

有 2 个词newyork,查询结果为:

  • 不指定mm,返回 3 条记录,
  • mm= 2,返回1条记录,
  • mm= 3,也返回 1 条记录,

所以,我想它会在查询之前首先将 mm 更改为 max 项。

4

2 回答 2

2

Answer-2:如果在查询中没有 mm指定参数,或者作为默认solrconfig.xml值,则参数的有效值q.op(在查询中,作为 solrconfig.xml 中的默认值,或者来自 schema.xml 中的 'defaultOperator' 选项)用于影响行为。所以默认行为mm是由q.op参数决定的。如果q.op是有效AND的,那么mm=100%;如果q.opOR,那么mm=1

于 2015-08-26T09:28:10.160 回答
1

最小数量应该匹配规范格式

无论计算结果是多少,都不会使用大于可选子句数量的值或小于 1 的值。(即:无论计算结果的结果有多低或多高,所需匹配的最小数量永远不会低于 1 或大于子句的数量

这意味着所需的数量永远不会小于 1 或大于查询中存在的术语数。如果查询中有 3 个术语并且 mm 因子为 5,它仍然会产生匹配,因为术语的数量少于要匹配的必需的可选术语。所有匹配的术语总是会成功,否则对于少于 x 个查询术语的所有内容,它只是零匹配。

于 2015-08-26T11:04:35.987 回答