elasticsearch 如何使用GET过滤ElasticSearch中的字段
我最近在WikipediaRiver上安装了ElasticSearch,因为我正在开发一个带有文章标题的自动完成框。我一直在试图找出查询数据集的最佳方法。以下工作:elasticsearch 如何使用GET过滤ElasticSearch中的字段,elasticsearch,wikipedia,elasticsearch,Wikipedia,我最近在WikipediaRiver上安装了ElasticSearch,因为我正在开发一个带有文章标题的自动完成框。我一直在试图找出查询数据集的最佳方法。以下工作: /wikipedia/_search?q=mysearch&fields=title,redirect&size=20 但我想为搜索添加更多限制: disambiguation=false, redirect=false, stub=false, special=false 我是ElasticSearch的新手,
/wikipedia/_search?q=mysearch&fields=title,redirect&size=20
但我想为搜索添加更多限制:
disambiguation=false, redirect=false, stub=false, special=false
我是ElasticSearch的新手,文档还没有让我走远。从我读到的内容来看,我需要一个经过过滤的查询;有没有一种方法可以通过GET请求实现这一点?这将使我的特定用例更加容易。如果不是,POST请求会是什么样子?提前谢谢
作为参考,映射为:
{
"wikipedia": {
"page": {
"properties": {
"category": {
"type": "string"
},
"disambiguation": {
"type": "boolean"
},
"link": {
"type": "string"
},
"redirect": {
"type": "boolean"
},
"special": {
"type": "boolean"
},
"stub": {
"type": "boolean"
},
"text": {
"type": "string"
},
"title": {
"type": "string"
}
}
}
}
}
要添加更多约束,可以继续使用lucene语法并执行以下操作:
/wikipedia/_search?q=mysearch AND disambiguation:false AND redirect:false AND stub:false AND special:false&fields=title,redirect&size=20
为了提高性能,您可以使用使用json API的过滤器,查询如下所示:
curl -XGET 'http://localhost:9200/wikipedia/_search?pretty=true' -d '
{
"from" : 0,
"size" : 20,
"query":{
"filtered" : {
"query" : {
"text" : { "title" : "test" }
},
"filter" : {
"and": [
{
"term" : {
"stub" : false
}
},
{
"term" : {
"disambiguation" : false
}
},
{
"term" : {
"redirect" : false
}
},
{
"term" : {
"special" : false
}
}
]
}
}
}
}
'
谢谢,这正是我想要的。你知道如何增加限额吗?无论我在哪里添加限制,它似乎都会显示10个结果。我用的是你的后一个建议。谢谢我用你可以用来限制结果数量的参数编辑了这篇文章。