0
我正在開發基於Elasticsearch的應用程序。如何檢查SearchRequestObject的查詢,篩選和aggs參數?
我需要能夠從JSON字符串構造一個SearchRequestBuilder
對象。我可以使用setSource
方法並傳遞完整的JSON查詢對象作爲參數。到現在爲止還挺好。
一個例子:(Obs .:我使用Scala的Java API)。
var builder = client.java.prepareSearch("logindex*")
.setSource("""
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": ":mimeType:text\\/html"
}
},
"filter": {
"range": {
"datetime": {
"gte": "2014-09-18T00:56:00",
"lte": "2014-09-29T00:56:00"
}
}
}
}
}
}""")
但我也確實需要能夠「檢查」以這種方式創建的對象,看看它的查詢,例如(這樣我就可以確保用戶不會試圖訪問他/她不應該的東西等等)。理想情況下,我想有像getQueryBuilder
等方法。
// i know I can manipulate the previously created object like this:
builder.addAggregation(...)
// but can I also perhaps ask questions to the object?
// for instance
var query = builder.getQueryBuilder //or something like this
// and then find out what type of query it is and maybe turn it into a filtered query
// so I can limit what the users can view.
我希望SearchRequestBuilder#internalBuilder
可能是我一直在尋找,但我無法得到任何有用的信息。
我希望我能夠明白我的觀點,並讓自己明白。