我正在尝试查询嵌入在.NET中的RavenDB中的子元素,文本搜索工作,但WhereBetweenOrEqual,WhereGreaterThan,WhereLessThan无法正常工作
我的代码:
public class Document
{
public string Id { set; get; }
public IEnumerable<Attribute> Attributes { set; get; }
}
public class Attribute
{
public string Key { set; get; }
public object Value { set; get; }
}
抽象索引类
public class Document_ByAttribute : AbstractIndexCreationTask<Document>
{
public Document_ByAttribute()
{
Map = documents => from doc in documents
select new
{
_ = doc.Attributes
.Select(attribute =>
CreateField(attribute.Key, attribute.Value, false, true))
};
}
}
这是工作
public ActionResult Filter(string id)
{
var doc = _Session.Advanced.LuceneQuery<Document>("Document/ByAttribute").Search("Title", "*" + id + "*").ToList();
return Json(doc, JsonRequestBehavior.AllowGet);
}
此功能无效
public ActionResult Price_Range(decimal min = 0, decimal max = 99999999)
{
var doc = _Session.Advanced.LuceneQuery<Document>("Document/ByAttribute").WhereBetweenOrEqual("Price", min, max).ToList();
return Json(doc, JsonRequestBehavior.AllowGet);
}
我已经尝试了一切。我没有成功。 请帮我。怎么办?
提前致谢。
答案 0 :(得分:0)
可能的问题是类型。 您传递的是小数,但服务器上的值是以其他方式解释的(可能是float或int)。确保那些匹配。