public void PASS_CreateQuery() { FuzzyStringQuery query = new FuzzyStringQuery("field", "value"); Assert.IsNotNull(query); Assert.AreEqual("field", query.Field); Assert.AreEqual("value", query.Value); }
public void PASS_Serialize_Fuzziness() { FuzzyStringQuery query = new FuzzyStringQuery("field", "value", 2); string json = JsonConvert.SerializeObject(query); Assert.IsNotNull(json); string expectedJson = "{\"fuzzy\":{\"field\":{\"value\":\"value\",\"fuzziness\":2}}}"; Assert.AreEqual(expectedJson, json); }
public void FAIL_CreateQuery_Fuzziness() { try { FuzzyStringQuery query = new FuzzyStringQuery("field", "asdf", -1); Assert.Fail(); } catch (ArgumentOutOfRangeException argEx) { Assert.AreEqual("fuzziness", argEx.ParamName); } }
public void FAIL_CreateQuery_Value() { try { FuzzyStringQuery query = new FuzzyStringQuery("field", null); Assert.Fail(); } catch (ArgumentNullException argEx) { Assert.AreEqual("value", argEx.ParamName); } }
private FuzzyQueryBase BuildFuzzyQuery(string fieldName, Dictionary<string, object> fieldDict) { object value = fieldDict[_VALUE]; object fuzziness = null; if (fieldDict.ContainsKey(_FUZZINESS)) fuzziness = fieldDict[_FUZZINESS]; FuzzyQueryBase query = null; if (IsDateTime(value)) { if(fuzziness != null) query = new FuzzyDateQuery(fieldName, DateTime.Parse(value.ToString()), new TimeValue(fuzziness.ToString()).TimeSpan); else query = new FuzzyDateQuery(fieldName, DateTime.Parse(value.ToString())); } else if (IsNumeric(value)) { bool isInteger = false; if (value is Int64 || value is Int32) isInteger = true; if (fuzziness != null && isInteger) { if (isInteger) query = new FuzzyNumberQuery(fieldName, (Int64)value, (Int64)fuzziness); else query = new FuzzyNumberQuery(fieldName, (Double)value, (Double)fuzziness); } else { if (isInteger) query = new FuzzyNumberQuery(fieldName, (Int64)value); else query = new FuzzyNumberQuery(fieldName, (Double)value); } } else { if (fuzziness != null) query = new FuzzyStringQuery(fieldName, value.ToString(), Int32.Parse(fuzziness.ToString())); else query = new FuzzyStringQuery(fieldName, value.ToString()); } query.Boost = fieldDict.GetDouble(QuerySerializer._BOOST, QuerySerializer._BOOST_DEFAULT); query.MaximumExpansions = fieldDict.GetInt32(_MAXIMUM_EXPANSIONS, _MAXIMUM_EXPANSIONS_DEFAULT); query.PrefixLength = fieldDict.GetInt32(_PREFIX_LENGTH, _PREFIX_LENGTH_DEFAULT); query.QueryName = fieldDict.GetStringOrDefault(QuerySerializer._QUERY_NAME); return query; }