private static MultiMatchQuery ParseMultiMatchQuery(JsonObject jo) { string query = null; string[] fields = null; MultiMatchType type = MultiMatchType.BestFields; bool isAnd = false; double tieBreaker = 0; foreach (var jp in jo.Properties()) { switch (jp.Name) { case "query": query = jp.Value.Get <string>(); break; case "fields": fields = jp.Value.Get <JsonArray>().Select(e => e.Get <string>()).ToArray(); break; case "operator": isAnd = jp.Value.Get <string>() == "and"; break; case "tie_breaker": tieBreaker = jp.Value.Get <double>(); break; case "type": type = GetMultiMatchType(jp.Value.Get <string>()); break; } } if (string.IsNullOrWhiteSpace(query)) { return(null); } return(new MultiMatchQuery(query, fields, type, isAnd, tieBreaker)); }
public MultiMatchQuery(string query, string[] fields, MultiMatchType type = MultiMatchType.BestFields, bool isAnd = false, double tieBreaker = 0.0) { Fields = fields; Query = query; MatchType = type; IsAnd = isAnd; TieBreaker = tieBreaker; }