Как объединить запрос solr dismax и логический запрос - PullRequest
0 голосов
/ 14 ноября 2018

Моя текущая сборка моего 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

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.

Можно ли объединить запросы с различными запросами-запросами?Или есть лучший подход?

...