深入探究Manticoresearch Java API:新增與查詢文檔實戰

  • 引言
  • Java 項目集成 Manticoresearch
  • 新增文檔操作
  • 查詢文檔操作
    • SQL 查詢
    • API 查詢
  • 總結

引言

Manticore Search 是一個使用 C++ 開發的高性能搜索引擎,創建于 2017 年,其前身是 Sphinx Search。它顯著改進了 Sphinx 的功能,修復了數百個錯誤,幾乎完全重寫了代碼并保持開源。在性能方面,相比 MySQL、Elasticsearch 等都有顯著優勢。

在這里插入圖片描述

Java 項目集成 Manticoresearch

若要在 Java 項目中集成 Manticoresearch,需在 pom.xml 文件添加 Maven 依賴:

<dependencies><!-- Maven --><dependency><groupId>com.manticoresearch</groupId><artifactId>manticoresearch</artifactId><version>8.0.0</version></dependency>
</dependencies>

項目中的 pom.xml 文件也有相關依賴配置,如 <artifactId>manticoresearch</artifactId>,表明項目已集成該客戶端。

新增文檔操作

在項目的中,展示了如何使用 Java API 向 Manticoresearch 新增文檔。以下是關鍵代碼片段:

public class InsertExample {public static void main(String[] args) {ApiClient defaultClient = Configuration.getDefaultApiClient();defaultClient.setBasePath("http://127.0.0.1:9308");IndexApi indexApi = new IndexApi(defaultClient);try {String tableName = "acc_20250625";InsertDocumentRequest indexRequest = new InsertDocumentRequest();Acc acc = new Acc();acc.setCaller("20250625");//...其他屬性indexRequest.table(tableName).id(System.currentTimeMillis()).setDoc(doc);indexApi.insert(indexRequest);}} catch (ApiException | InterruptedException e) {System.err.println("Exception when calling Api function");e.printStackTrace();}}
}

上述代碼先創建 ApiClient 并設置服務地址,接著實例化 IndexApi,然后構建 InsertDocumentRequest 對象并設置文檔內容,最后調用 insert 方法將文檔插入指定表中。

查詢文檔操作

SQL 查詢

在項目的中,展示了如何使用 SQL 進行文檔查詢。示例代碼如下:

ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("http://127.0.0.1:9308");
UtilsApi utilsApi = new UtilsApi(defaultClient);try {SqlResponse selectResultList = utilsApi.sql("select * from testrt where gid =66", true);System.out.println(selectResultList);// 解析結果到對象JSON.parseArray(JSON.toJSONString(selectResultList.get())).forEach(str -> {ManticoreResult<TestRT> result = JSON.parseObject(JSON.toJSONString(str),new TypeReference<ManticoreResult<TestRT>>() {});System.out.println(result);});
} catch (ApiException e) {System.err.println("Exception when calling Api function");e.printStackTrace();
}

代碼中創建 UtilsApi 實例,調用 sql 方法執行 SQL 查詢語句,最后將查詢結果解析為 ManticoreResult 對象。

API 查詢

同樣在項目中,展示了使用 Java API 進行文檔查詢的方法:

ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("http://127.0.0.1:9308");
SearchApi searchApi = new SearchApi(defaultClient);try {String tableName = "testrt";SearchQuery query = new SearchQuery();query.setQueryString("@title test");SearchRequest searchRequest = new SearchRequest();searchRequest.table(tableName).query(query);SearchResponse searchResponse = searchApi.search(searchRequest);System.out.println(searchResponse);
} catch (ApiException e) {System.err.println("Exception when calling Api function");e.printStackTrace();
}

此代碼創建 SearchApi 實例,構建 SearchQuerySearchRequest 對象,設置查詢條件后調用 search 方法執行查詢并輸出結果。

總結

通過上述介紹和項目代碼示例,我們了解了如何在 Java 項目中集成 Manticoresearch,以及如何使用其 Java API 進行新增文檔和查詢文檔操作。SQL 查詢和 API 查詢各有優勢,開發者可根據實際需求選擇合適的查詢方式。Manticoresearch 憑借其高性能和易用性,在全文搜索領域具有廣闊的應用前景。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/86230.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/86230.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/86230.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux遠程機器無法連接-------解決方案

筆者這幾天碰到linux機器遠程ssh 無法連接的情況 背景分析 筆者在linux機器進行測試的時候&#xff0c;偶發突然無法連接機器&#xff0c;如下圖所示&#xff0c;vscode的遠程連接也無法進行。 telnet也無法登錄。 解決方案 筆者的登錄場景是這樣的&#xff0c;所以懷疑是…

網絡模型中,應用層支持什么協議

在網絡模型中&#xff08;無論是 OSI 七層模型 還是 TCP/IP 四層模型&#xff09;&#xff0c;應用層 是最頂層&#xff0c;直接為用戶或應用程序提供網絡服務接口。它支持的是各種具體的應用程序協議&#xff0c;這些協議定義了特定類型應用程序如何進行通信和數據交換。 以下…

比特幣序數理論與銘文的終極指南

引言&#xff1a;比特幣網絡的意外趨勢 去年&#xff0c;比特幣網絡上出現了一個意外的趨勢——這一趨勢令許多比特幣純粹主義者感到憤怒和驚訝&#xff0c;但同時也在更廣泛的加密貨幣社區中點燃了對這個行業最古老、最安全區塊鏈的希望和熱情。 這個趨勢涉及銘文&#xff0…

C/C++ DLL 動態鏈接庫的開發與示例詳解

簡介 介紹 QT6&#xff0c;DLL 動態鏈接庫的開發&#xff0c;開發示例 詳細 DLL 入口函數 DllMain 是每個 dll 的入口函數&#xff0c;可以寫&#xff0c;也可以不寫&#xff0c;不影響其他庫函數運行。如果使用此函數需要包含頭文件#include <objbase.h>。 BOOL WI…

在 CentOS 7 上基于 Docker 的 LNMP 部署 Hexo

時間起因是因為之前BLOG沒有備份數據都丟失了,今天在和朋友聊天的時候討論到到底使用Hexo還是用Halo?最后還是想熟悉下這兩種博客的架設和部署方式,每次部署都有各種不同的問題,旨在提升自己的學習認知。以此有機會得到更多大佬們的指導~ 因為我是在 CentOS 7 服務器上使用…

《Go小技巧易錯點100例》第三十六篇

本期分享&#xff1a; 1.使用gops獲取正在運行的Go進程 2.將靜態文件編譯到Go程序中 3.Go語言通過多重賦值實現變量值交換 使用gops獲取正在運行的Go進程 在 Go 語言開發中&#xff0c;進程診斷和性能分析是保障服務穩定性的關鍵環節。Google 開源的 gops [https://github.…

Idea新UI

輕松上手Idea新UI&#xff1a;開啟高效編程新體驗 在軟件開發領域&#xff0c;IntelliJ IDEA一直以其強大的功能和出色的性能深受開發者喜愛。而其推出的new ui&#xff0c;更是為我們帶來了全新的操作體驗&#xff0c;進一步提升了開發效率。今天&#xff0c;就來詳細講講如何…

QML\QtQuick\QtWidgets適合的場景及其優缺點

在Qt框架中&#xff0c;QML、QtQuick和QtWidgets是三種不同的UI開發技術&#xff0c;各有其適用場景和優缺點。以下是它們的對比分析&#xff1a; 1. QtWidgets 適用場景&#xff1a; 傳統的桌面應用程序&#xff08;Windows/macOS/Linux&#xff09;。 需要復雜控件&#xf…

Spring Boot 2.x 項目搭建 (二)

因為Spring Boot 2.x 項目搭建 &#xff08;一&#xff09;訪問 start.spring.io 或通過IDE&#xff08;如IntelliJ IDEA&#xff09;的Spring Initializr向導創建項目時&#xff0c;只能使用jdk17以上的版本&#xff0c;這里我需要兼容老項目需要JDK1.8&#xff0c;所以進行一…

Python 前端框架/工具合集

前言 Python 本身并不是為前端開發而設計的語言&#xff0c;但確實有一些 Python 框架可以“變相”地用于前端開發&#xff0c;比如生成 HTML、控制前端頁面邏輯&#xff0c;甚至可以直接運行在瀏覽器中。 目標 本文將對常見的使用python實現的前端框架&#xff0c;先做一個…

Swagger 在 Spring Boot 中的詳細使用指南

Swagger 是一個強大的 API 文檔生成工具&#xff0c;在 Spring Boot 項目中主要通過 springdoc-openapi 庫實現。下面我將詳細講解 Swagger 的配置、注解使用和高級功能。 一、基礎配置 1. 添加依賴 在 pom.xml 中添加&#xff1a; xml 復制 下載 運行 <dependency&…

群暉如何開啟及使用ssh:小白用戶上手指南-家庭云計算專家

最近很多用戶希望提供群暉下onlyoffice的安裝服務,但是很多都是萌新小白,不知道怎么啟用ssh和使用ssh客戶端.這里提供簡單的方法,統一答復: 重要的事情說3遍:一定不要自己發揮,全部按說明的來;一定要在內網環境用內網ip訪問;不要用域名和端口號,謝謝各位萌新了!!! 一、ssh啟用…

Ubuntu查看與切換顯示管理器(已測試ubuntu20,ubuntu24)

一級標題 顯示管理器是用戶使用圖形化的登錄界面。 當用戶成功輸入用戶名和密碼后&#xff0c;即可開始使用圖形化界面會話。gdm3和 lightdm 都是顯示管理器。 它們提供了圖形化登錄并處理用戶身份驗證。 查看正在使用的顯示管理器&#xff1a; cat /etc/X11/default-displa…

ROS 2 中 Astra Pro 相機與 YOLOv5 檢測功能編譯啟動全記錄

先記錄大概主要流程&#xff0c;后期有時間了再完善細節以及附上截圖 一、編譯 Astra Pro 相機功能包 1. 清理并編譯相機包 cd ~/Astra_ws rm -rf build/astra_camera install/astra_camera # 清理舊編譯 colcon build --packages-select astra_camera --parallel-workers …

當實體類名和數據庫表列名不一致時不能封裝數據的解決辦法

1. <resultMap> 是什么&#xff1f; 作用&#xff1a;<resultMap> 用來定義數據庫表字段和Java實體類屬性之間的對應關系。 為什么需要&#xff1f; 數據庫字段通常用下劃線命名&#xff08;如 brand_name&#xff09;&#xff0c;而Java類屬性用駝峰命名&#…

window系統上labelImg的安裝與使用

一、window上安裝Anaconda 下載&#xff1a;https://repo.anaconda.com/archive/選擇版本&#xff0c;此次選擇的是Anaconda3-2025.06-0-Windows-x86_64.exe雙擊安裝在 Windows 搜索欄中輸入 Anaconda Prompt 并打開。 二、安裝pyton3.8 wondow環境 在 Windows 搜索欄中輸入…

SSE 流與普通 HTTP 響應的區別

1. 連接特性 特性普通 HTTP 響應SSE 流連接持續時間一次性&#xff0c;請求-響應后立即關閉持久連接&#xff0c;保持打開狀態通信方向單向 (客戶端→服務器→客戶端)單向 (服務器→客戶端)數據格式完整響應體流式文本數據 (text/event-stream) 2. 數據傳輸方式 普通 HTTP 響…

Proteus仿真51單片機控制L298N PWM電機調速

51單片機概述 51單片機是指Intel公司開發的MCS-51系列單片機及其兼容產品&#xff0c;是應用最廣泛的8位單片機系列之一。其名稱來源于該系列的第一款芯片8051。 主要特點&#xff1a; 8位CPU&#xff1a;處理數據寬度為8位 哈佛結構&#xff1a;程序存儲器和數據存儲器分開…

批量將exb文件轉為pdf的實用工具

最近在工作中遇到了一個棘手的問題&#xff1a;需要將大量CAXA電子圖板(.exb)格式的圖紙文件轉換為PDF格式以便于共享和查閱。手動一個個打開轉換不僅效率低下&#xff0c;而且容易出錯。于是&#xff0c;我決定開發一個批量轉換工具來解決這個問題。 使用效果 在實際使用中&…

從C++編程入手設計模式——命令模式

從C編程入手設計模式——命令模式 ? 命令模式是一個用指令封裝請求的優雅方法。換而言之&#xff0c;對于一個復雜的系統&#xff0c;當我們發現&#xff0c;使用一系列的指令&#xff08;Command&#xff09;來操作對象的時候&#xff0c;這個設計模式就會顯得非常的實用。我…