exception - Elasticsearch中的TermSuggestionBuilder Java API不返回任何结果

标签 exception search elasticsearch

我构建了一个TermSuggestionBuilder,如下所示

TermSuggestionBuilder termSuggest = new TermSuggestionBuilder("rule")
            .suggestMode("always") // Always, otherwise the results can vary
            // between requests.
            .text("plabel").field("_instanceName");

其中rule是索引的名称,plabel是我正在搜索的文本,_instancename是文件名。

该查询可以从Java代码正常运行,但不会返回任何结果。
构建的查询看起来像这样
"suggest" : {
"rule" : {
  "text" : "pxretrievreportdata",
  "term" : {
    "field" : "_instanceName",
    "suggest_mode" : "always"
  }
}

}

当我尝试从其余客户端[http://localhost:9200/rule/_suggest]运行相同命令时,出现以下异常
"_shards": {
"total": 1,
"successful": 0,
"failed": 1,
"failures": [
{
"index": "rule",
"shard": 0,
"reason": "BroadcastShardOperationFailedException[[rule][0] ]; nested: ElasticsearchException[failed to execute suggest]; nested: ElasticsearchIllegalArgumentException[Suggester[rule] not supported]; "
}
]
}

在其他客户端上运行时,可以给我带来预期的结果[http://localhost:9200/rule/_suggest]
{
  "my-suggestion" : {
    "text" : "plabel",
    "term" : {
      "field" : "pzInsKey"
    }
  }
}

请让我知道我在构造TermSuggestionBuilder时犯了什么错误,因为从其余客户端运行时后面的查询确实返回了预期的结果。

最佳答案

您在Java api中的实现无效,

我将您的代码重构为

SuggestBuilder.SuggestionBuilder suggestBuilder = new TermSuggestionBuilder("my-suggestion")
.text("plabel").field("pzInsKey").suggestMode("always");

SuggestRequestBuilder requestBuilder = client.prepareSuggest("rule")
.addSuggestion(suggestBuilder);

我没有检查输出,但应该可以。

关于exception - Elasticsearch中的TermSuggestionBuilder Java API不返回任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30434356/

相关文章:

java - 如何将 Throw 与多个 if/else 条件一起使用?

swift - 将搜索栏添加到表格 View

elasticsearch - 您输入的索引模式与任何索引都不匹配

java - 使用java api检查并插入elasticsearch

java - 为什么会抛出向上转换检查异常

MySQL JDBC语法错误异常

.net - 为什么.net 异常没有被捕获?

javascript - 搜索第一个数组中的对象属性值并将其替换为第二个数组中的对象属性值?

ios - 单击搜索栏时如何导航到另一个 View Controller

elasticsearch - Elasticsearch Sink Connector 是否像 JDBC sink 连接器一样支持主键上的 upsert 模式?