如何提高elasticsearch中的索引类型?

2024-05-01

我以前是这样搜索的:curl -XGET localhost:9200/users/_search

但 users 包含用户 a、b、c,如下所示:curl -XGET localhost:9200/users/a,b,c/_search

users是第一个索引,a/b/c是类型。

如何增强类型a在这个查询中?最好有示例代码,谢谢。


您可以使用术语查询来增强索引类型。

首先创建一些测试数据(e1,e2,e3是类型,test是索引名称):

PUT test/e1/1
{
  "subject": "subject 1"
}
PUT test/e2/1
{
  "subject": "subject 1"
}
PUT test/e3/1
{
  "subject": "subject 1"
}

现在使用带有按类型自定义提升的术语查询:

GET test/_search
{
  "query": {
    "bool": {
      "should": [
        {
         "query_string": {
           "query": "subject"
         }
        },
        { "term" : { "_type" : {"value" : "e3", "boost" : 2.0} } },
        { "term" : { "_type" : {"value" : "e2", "boost" : 3.0} } }
      ]
    }
  }
}

这将生成如下结果:

{
   "took": 1,
   "timed_out": false,
   "_shards": {
      "total": 1,
      "successful": 1,
      "failed": 0
   },
   "hits": {
      "total": 3,
      "max_score": 0.7671045,
      "hits": [
         {
            "_index": "test",
            "_type": "e2",
            "_id": "1",
            "_score": 0.7671045,
            "_source": {
               "subject": "subject 1"
            }
         },
         {
            "_index": "test",
            "_type": "e3",
            "_id": "1",
            "_score": 0.59740055,
            "_source": {
               "subject": "subject 1"
            }
         },
         {
            "_index": "test",
            "_type": "e1",
            "_id": "1",
            "_score": 0.1289963,
            "_source": {
               "subject": "subject 1"
            }
         }
      ]
   }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何提高elasticsearch中的索引类型? 的相关文章

随机推荐