如何结合Solr Dismax查询和布尔查询

时间:2018-11-14 15:03:14

标签: solr dismax

我目前正在构建我的solrQuery,如下所示:

var directQuery = new SolrQuery(searchString).Boost(1000);
var brandQuery = new SolrQueryByField("BrandName", searchString).Boost(1500);

string wildCards = GetWildcards(searchString);
var wildcardQuery = new SolrQuery(wildCards);

var booleanQuery = new SolrQueryByField("ShowOnline", "true");

var query = (directQuery || brandQuery || wildcardQuery) && userQuery

我想更改搜索,以便仅显示包含搜索字符串中所有单词的结果。 建议我使用DisMax设置最小匹配项。

到目前为止,我已经为queryOptions创建了以下ExtraParams

var extraParams = new Dictionary<string, string>
{
    {"defType", "edismax"},
    {"qf","text^1000 BrandName^1500 "},
    {"mm", "100%"},
    {"mm.autoRelax","true"}
};

并像这样应用它:

var queryOptions = new QueryOptions{ExtraParams = extraParams};
SolrQueryResult<SolrVariant> solrSearch = SolrVariantInstance.Query(new SolrQuery(searchString), queryOptions);

与我的directQuery和brandQuery相对应。

但是我现在想将其与我的wildCardQuery和booleanQuery结合起来。

是否可以将查询与不同的queryOptions组合? 还是有更好的方法?

0 个答案:

没有答案