JRediSearch 是 RediSearch 的一个 Java 客户端库。
JRediSearch 包含一个抽象化 RediSearch Redis 模块的 API 的 Java 库,并在 Redis 内部实现了强大的 in-memory 搜索引擎。
示例代码
初始化客户端
import io.redisearch.client.Client; import io.redisearch.Document; import io.redisearch.SearchResult; import io.redisearch.Query; import io.redisearch.Schema; ... Client client = new Client("testung", "localhost", 6379);
为索引定义并创建一个 schema
Schema sc = new Schema() .addTextField("title", 5.0) .addTextField("body", 1.0) .addNumericField("price"); client.createIndex(sc, Client.IndexOptions.Default());
为索引添加文档
Map<String, Object> fields = new HashMap<>(); fields.put("title", "hello world"); fields.put("body", "lorem ipsum"); fields.put("price", 1337); client.addDocument("doc1", fields);
查找索引
// Creating a complex query Query q = new Query("hello world") .addFilter(new Query.NumericFilter("price", 0, 1000)) .limit(0,5); // actual search SearchResult res = client.search(q);
Jredisearch进行编码与解码使用的是默认的系统编码,不是utf-8,所以在开发时,中文可以正常存入也可以正常通过文档id获取中文内容,但是如果将中文作为条件查询则查询不到 注意: 使用jredisearch的updateDocument()与replaceDocument()方法时可能会出现新存入的数据或之前存入且未被更新的数据无法通过 searchQuery()方法查询到,但是通过文档i
我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se
我正在尝试重建一个与elasticsearch 2.4对话的插件,以便与elasticsearch 5配合使用。 代码来自:https://github.com/pentaho/pentaho-kettle/blob/master/plugins/elasticsearch-bulk-insert/src/org/pentaho/di/trans/steps/elasticsearchbulk/E
问题内容: 我最近开始使用Cassandra数据库。现在,我正在评估我们应该前进的方向。 我看到过很多关于使用哪个客户端作为Cassandra的文章,但没有一个有明确的答案。 我的团队已要求我对此进行一些研究,并针对Java中的每个问题提出一些建议。 正如我提到的那样,我最近参与其中的原因还不是很清楚,为什么某些人选择,为什么某些人与其他客户一起去。 我了解每个Cassandra客户端的简要信息,
问题内容: 是否有适用于Java的Socket.IO客户端?到目前为止,我只找到了仅适用于JavaScript的官方Socket.IO客户端和仅作为服务器的socket.io- java。 问题答案: 目前的选项有限: http://code.google.com/p/weberknecht/ https://github.com/TooTallNate/Java-WebSocket https:
问题内容: 哪个是最好的Java Memcached客户端,为什么? 问题答案: 作为spymemcached的作者,我有些偏颇,但是我说这是我的,原因如下: 从头开始设计,以尽可能地不受阻碍。 当您请求数据,发布数据集等时,会有一个微小的并发队列插入,并且您会得到一个Future来阻止结果(使用一些便捷方法来处理诸如get之类的常见情况)。 积极优化 您可以在我的优化页面上阅读更多信息,但是我会
我正在尝试使用RMI客户机-服务器通信。我编写了以下类/接口: > 接口远程接口扩展远程 类HelloStub扩展UnicastRemoteObject实现远程接口 类服务器,我绑定了远程obj 将客户端分类如下: 我不明白为什么我必须使用interface RemoteInterface进行查找?我不能使用HelloSub类吗,它是真正的远程obj? 谢谢,再见。
问题内容: 有了JSR 311及其实现,我们有了一个强大的标准,可以通过REST公开Java对象。但是,在客户端,似乎缺少与SOAP的Apache Axis类似的东西-隐藏了Web服务并将数据透明地封送回Java对象的东西。 您如何创建Java RESTful客户端?使用HTTPConnection和手动解析结果?还是专业客户(例如Jersey或Apache CXR)? 问题答案: 这是一个古老的
在尝试设置一个简单的AndroidDriver时,我得到了一个。 所需的代码如下- Appium Java客户机版本是6.1.0。 我得到的异常如下所示- 在io.appium.java_client.android.androiddriver.getcapabilities(androiddriver.java:209)在org.openqa.selenium.remote.remoteWebd