コード例 #1
0
ファイル: QueryExtensions.cs プロジェクト: ymsoftware/YM
        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));
        }
コード例 #2
0
 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;
 }