如何使用Elasticsearch Java API编写查询,其中JSON列表中的元素包含List<>?中的一些元素?

时间:2015-04-28 20:28:56

标签: json elasticsearch search-engine java-api

我有这个JSON对象:

{
"title": "Food",
"Dishes": [
    "Pancakes",
    "Tacos"
],
"rating": "5"
}

我需要使用Elasticsearch的Java API编写一个查询,该API将匹配JSON对象,其中" Dishes"字段包含字符串" Pancakes"或者"汤" (因此上面的JSON应匹配)。我搜索的元素存储在这样的列表中:

List<String> findElems = Arrays.asList("Pancakes", "Soup");

我曾尝试使用QueryBuilders,但我无法找到如何编写一个匹配JSON文件的查询,其中&#34; Dishes&#34; list包含findElems中的一个或多个元素。

1 个答案:

答案 0 :(得分:1)

使用术语查询来执行此操作,

    List<String> list= new ArrayList<String>();
    list.add("Pancakes");
    list.add("Tacos");
    QueryBuilders.termsQuery("Dishes", list);

它有帮助!