我目前正在构建我的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组合? 还是有更好的方法?