在Elasticsearch中对文档测试查询,而不将它们存储在索引中



我有一组文档,它们没有存储在任何Elasticsearch索引中(我也不想这样做),我想针对Elasticsearch查询进行测试。基本上,我想看看Elasticsearch分析器在不创建索引的情况下如何响应针对任意文档的任意查询。

我一直在看解释API,分析API。Percolate做了我想要的东西,但我完全没有必要将查询存储在索引中。我一直在测试的渗滤液流是:

  1. 用户发起查询
  2. 用随机生成的唯一ID在渗透索引中存储查询
  3. 使用documents: []数组运行perate查询
  4. 删除ID为2的查询

这是一个特别的查询,所以它不需要被存储,我遇到了竞争条件,其中存储在步骤2中的查询只有在运行percolate查询之前输入sleep 1才能可靠地返回结果。

基本上,我正在寻找的API看起来像这样:
GET /_test_query
{
"query": {
"simple_query_string": {
"query": "james blunt",
"fields": ["title", "content"]
}
},
"documents": [{
"id": "bbb",
"title": "James Blunt tweets",
"content": "That he loves Ibiza"
}, {
"id": "aaa",
"title": "Ed Sheeran tweets",
"content": "That he loves music"
}]
}

带有类似于常规搜索查询的响应:

{ "hits": { "hits": [{ _id: "bbb"}] } }
// etc

这在Elasticsearch中是可能的,还是渗透是唯一的方法?

Elasticsearch没有这样的api,但这是一个很好的想法,它可能值得提出一个功能请求

索引文档,或者使用percolate

最新更新