Solr搜索在查询中使用OR条件获得不同的产品数量

  • 本文关键字:条件 查询 搜索 OR Solr solr
  • 更新时间 :
  • 英文 :


我们面临查询问题,我们使用多个"OR"条件从solr文档中搜索产品

下面是我们的搜索条件;OR";

<str name="q">(product_related_kword:(leather AND shopping AND bags)) OR (product_related_kword:(paper AND shopping AND bags))</str>

在这里我们正在搜索丝束产品";皮革购物袋"&amp"纸质购物袋";

现在我们得到了这样的结果

<str name="product_name">leather Paper shopping bag</str>
<float name="score">58.45</float></doc>
<str name="product_name">Paper shopping bag</str>
<float name="score">56.45</float></doc>
<str name="product_name">leather shopping bags</str>
<float name="score">56.45</float></doc>

为什么我们在顶级产品中得到了不同的"分数";皮革购物袋";

如果文档中符合"OR"条件,我希望搜索结果得分相等

您可以在此处使用dismax。dismax带有许多param,其中一个是短语字段。

pf(Phrase Fields(参数一次匹配文档列表已经使用fq和qf参数,即pf参数进行了识别可用于";"助推";所有q参数中的项看起来非常接近。

格式与qf参数使用的格式相同:字段和";提升";在造句时与他们每个人联系在一起查询出整个q参数。

你可以在这里阅读更多关于dismax的

mm(最小应匹配(参数处理查询时,Lucene/Solr识别三种类型的条款:强制条款、禁止条款、,以及";可选的";(也称为"应该"条款(。默认情况下,所有单词或者在q参数中指定的短语被视为"0";可选的";子句,除非它们前面有一个"+"或一个"-&";。处理时这些";可选的";子句,mm参数可以说这些条款中必须有一定的最小数量匹配。DisMax查询解析器在如何计算最小数量方面提供了极大的灵活性指定。

最新更新