如何搜索索引和类型?

时间:2018-06-23 09:22:34

标签: elasticsearch

考虑我将文档存储在Elastic Search下。

跨类型搜索

这是我的网址(http://localhost:9200/bookstore/books/1001),用于创建ID为1001(1001是数据库的主键)及以下的书 是文件

    {
      "title": "Java 8 Optional In Depth",
      "category":"Java",
      "published_date":"23-FEB-2017",
      "author":"Rambabu Posa"

     }

类似地,我使用URL http://localhost:9200/bookstore/pen/2001和下面的文档创建笔索引

     {
      "name": "Parker",
      "category":"Ink",
      "buy_date":"15-Mar-2017",
      "price":"20"

     }

如果我需要在索引bookstore下的任何字段下搜索类型(书籍和钢笔都可以),可以使用http://localhost:9200/bookstore/_search?q=:any_keyword吗?

跨索引搜索

我可以用http://localhost:9200/_search?q=:any_keyword吗?

1 个答案:

答案 0 :(得分:0)

age_of_animal是搜索所有索引和类型的正确端点,但是animal中缺少该字段。请参见the documentation-类似http://localhost:9200/_search。如果要搜索所有字段,可以用q=:any_keyword use the _all field

但是,您实际上并不想这样做/其他一些评论:

  1. 通常切换到request body search -它具有所有功能,并且从长远来看就是您要使用的功能。
  2. _all field has been deprecated in 6.0;使用显式q=my_field:any_keyword或指定您要搜索的特定字段。
  3. 默认情况下,在6.0中禁用每个索引的多种类型。更改您的映射以使用单一类型。
  4. 在所有索引中搜索可能会非常昂贵。如果可以,请指定一个索引进行搜索。或者,您也可以定义通配符(q=any_keyword)或索引列表(copy_to)。