Frolics是一個脫機,輕巧的全文搜索庫,用於前端應用程序。
Frolics受到Elasticsearch和Lucence的啟發,基礎實現包括文本處理算法和數據結構,例如令牌化,莖和倒置索引。
提供docs後,Frolics會相應地創建開啟索引數據,該數據廣泛用於主要的全文搜索服務,例如Elasticsearch和Google Search。
從現在開始,您可以省略繁重的安裝過程來進行全文搜索,甚至更好,您可能不再需要後端來開發此類功能。
Frolics在這裡提供幫助!
在安裝Frolics之前,請確保您的節點版本兼容。節點V12+還可以,但建議使用節點V16。
但是,當我在ReactJ中測試Frolics時,節點V17+存在兼容性問題。但是節點V16工作良好。
完成後。在終端運行npm install frolics 。
導入之前,需要一個原始數據。看起來應該這樣:
const docs = [
{
id: 1,
body: 'this is a test full text'
},
{
id: 2,
body: 'can you can a can as a canner who can can a can',
},
];
請記住,需要獨特的id和文本內容body字段,因為id區分每個文檔,並且body是Frolics需要分析和對文本數據進行分析以進行搜索的內容。
根據需要body id ,您可以使用多個功能的字段。例如,如果您在搜索時想要預覽圖像,則可以更改這樣的docs :
const docs = [
{
id: 1,
body: 'this is a test full text',
// imagesURL field is totally optional, you can have different name and data structure
imagesURL: 'https://yourImage.com/img1.png',
},
{
id: 2,
body: 'can you can a can as a canner who can can a can',
},
];
定義docs後,我們都設置了。下一步是使用Frolics。
Frolics支持ES6語法,因此您可以這樣導入:
import { createDTM, Stemmer } from 'frolics';
import { docs } from "../assets/document.js" // Don't forget the raw data
現在您可以像這樣調用createDTM :
const DTM = createDTM(docs);
createDTM是獲取docs並創建倒置索引字典的主要函數。
您可以用Stemmer修剪原始輸入以獲得搜索結果
const DTM = createDTM(docs);
const stemmedInput = Stemmer(input);
return DTM[stemmedInput]; // The result
有關詳細的示例,請訪問示例文件夾。
createDTM函數返回的是倒置索引字典。它可以使用簡單的JavaScript內置函數JSON.stringify方法將其轉換為人類可讀的JSON格式。
您可以根據框架選擇任何文件讀取方法,並在調用createDTM函數之前加載JSON文件(如果存在)。