弹性搜索 - 传递的通用值

时间:2015-03-19 20:52:32

标签: elasticsearch-plugin elasticsearch

我目前正在为弹性搜索实现RESTful API。有没有办法用通用值查询ES?例如,这将允许用户传入任何键和值,这会将值转换为任何类型的字段。我觉得我让它复杂化了。有没有更简单的方法来查询ES传递给它的通用值?

前:

我可以传递以下内容:POST命令 -

RulesGreaterThanDictionary是:

  public Dictionary<string, Object> RulesGreaterThanDictionary { get; set; }

POST呼叫是:

  {
        "RuleEquals":
        {
          "RulesEqualDictionary":
          {
            "email" : "ggg@gmail.com",
            "validUser" : true
          }
        },
          "RuleGreaterThan" : 
        {
            "RulesGreaterThanDictionary" : 
            {
              "minamount" : 10
            }
        }
    }

因为这会查询ES以查找电子邮件等于某个电子邮件的文档,并且是有效用户以及该项目的最小数量至少为10。

像这样的通用。

之前是否已经实施过? 谢谢!

1 个答案:

答案 0 :(得分:0)

另一种可能性是编写包装器

public class ValueWrapper {
    ... 
    public static final String VALUE = "value";

    private T value;

    // getter & setter
}

然后映射包装器而不是你可以通用的对象:)