我曾经这样搜索: curl -XGET localhost:9200/users/_search
curl -XGET localhost:9200/users/_search
但用户包含这样的用户a,b,c: curl -XGET localhost:9200/users/a,b,c/_search
curl -XGET localhost:9200/users/a,b,c/_search
users是第一个索引,a/b/c是类型。
users
a/b/c
如何a在此查询中增加类型?最好加上示例代码,谢谢。
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" } } ] } }