【问题标题】:solarium add filter query on multiple fields with OR operator日光浴室使用 OR 运算符对多个字段添加过滤器查询
【发布时间】:2016-08-28 09:57:23
【问题描述】:

我是 Solr 搜索的新手,谁能帮我添加多个字段或条件我在 solr 中找到了解决方案,但我无法在日光浴室中实现。 我有字段

1. name
2. username
3. email

我想在 Solarium 过滤器查询中转换它,就像我为此使用单个字段一样

$query->createFilterQuery('name')->setQuery('name:*' . $keyword . '*');

我想要它的结果

fq=(name:*abc* OR username:*abc* OR email:*email*)

请帮我用 OR 运算符添加多个字段进行匹配,如果三个字段中的任何一个匹配,然后返回结果。

【问题讨论】:

  • 你不能使用 setQuery('name:*..* OR foo:*..* OR bar:*..*')?你有错误吗?

标签: solr solarium


【解决方案1】:

Disjunction Max aka DisMax 可能会为您指明正确的方向。 SitePoint 在这里整理了一个简单的教程:https://www.sitepoint.com/using-solarium-solr-search-implementation/

带有您问题中命名的参数的示例:

$dismax = $query->getDisMax ();
$dismax->setQueryFields ('name username email');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多