0

我正在编写一个 Solr 自定义分析器,以将字段的值发布到 Apache Stanbol,以便在索引阶段进行增强。

在我的自定义分析器的 incrementToken() 方法中,我有以下代码。我正在使用 Jersey REST 客户端将令牌的值发布到 Stanbol 增强器端点。运行分析器时,我总是收到HTTP 500错误响应,而不是预期的增强结果。

但是在 Java 应用程序的 main 方法中执行时,相同的 REST 客户端逻辑可以工作。

有人可以帮我确定问题出在哪里吗?会不会是 Java 权限问题,在 Solr 分析器中调用 Web 端点?

public boolean incrementToken() throws IOException {
    if (!input.incrementToken()) {
          return false;
        }
        char[] buffer = charTermAttr.buffer();
        String content = new String(buffer);

        Client client = Client.create();
        WebResource webResource = client.resource("http://localhost:8080/enhancer");
        ClientResponse response = webResource.type("text/plain").accept(new MediaType("application", "rdf+xml")).post(ClientResponse.class, content);


        int status = response.getStatus();
        if (status != 200 && status != 201 && status != 202) {
            throw new RuntimeException("Failed : HTTP error code : "
                 + response.getStatus());
        }

        String output = response.getEntity(String.class);
        System.out.println(output);
        charTermAttr.setEmpty();
        char[] newBuffer = output.toCharArray();
        charTermAttr.copyBuffer(newBuffer, 0, newBuffer.length);
        return true;
}
4

1 回答 1

0

(http://localhost:8983/solr/#/collection1/analysis)当我使用 Solr 分析 UI测试我的分析器时,这似乎是一个奇怪的间歇性问题。

当我在分析器和索引中对输入值进行硬编码时,它工作正常。我给出了相同的输入:“Tim Bernes Lee 是麻省理工学院的教授”在 Analyzer 类和 Solr 分析 UI 中硬编码。调整字段值时,UI 响应间歇性失败。

这可能是字段值的字符编码问题。

于 2013-11-11T21:37:43.947 回答