Node.js 有没有好的索引/搜索引擎?

2023-04-19前端开发问题
2

本文介绍了Node.js 有没有好的索引/搜索引擎?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在为 node.js 应用程序寻找一个好的开源(使用 LGPL 或许可许可证)索引引擎,比如 Lucene.我正在寻找进程内索引和搜索,但对像 Sphinx 或 Solr 这样的索引服务器不感兴趣.

I'm looking for a good open source (with LGPL or a permissive license) indexing engine for a node.js application, something like Lucene. I'm looking for in-process indexing and search and am not interested in indexing servers like Sphinx or Solr.

我也不害怕为 C/C++ 库创建绑定,所以我也愿意接受这些建议.

I am not afraid to create bindings for a C/C++ library either so I'm open to those kind of suggestions as well.

到目前为止我已经找到了

So far I've found

  • node-clucene 似乎不再积极维护(并且有几个未解决的问题)
  • 我可以为 CLucene 创建自己的绑定,但它似乎很少维护,而且它的当前版本也远远落后于 Java Lucene
  • Apache Lucy 似乎是为为动态语言创建绑定而设计的,但到目前为止它们没有节点绑定(也没有 C API),我还没有找到任何关于创建绑定的文档.我也没有找到任何关于其性能的基准.
  • node-search似乎被放弃了
  • jsii 好像还是个原型,也被废弃了
  • fullproof,仅用于在网络浏览器中运行
  • lunr.js 似乎只允许序列化整个索引,因此不可扩展
  • node-clucene which doesn't seem to be actively maintained anymore (and has several open issues)
  • I could create my own binding for CLucene but it seems to be quite sparsely maintained and its current version is also quite behind the Java Lucene
  • Apache Lucy which seems to be designed for the purpose of creating bindings for dynamic languages, but so far they don't have node bindings (nor a C API) and I haven't found any docs about creating bindings. I also didn't find any benchmarks about its performance.
  • node-search which seems to be abandoned
  • jsii which seems to be still a prototype and is also abandoned
  • fullproof which is only intended to run in a web broswer
  • lunr.js which seems to only allow serializing the whole index, so isn't scalable

我可以自己动手",但我更喜欢使用现有的解决方案.

I could "roll my own", but I'd prefer to use an already existing solution.

为什么我对独立的索引服务器不感兴趣:我使用一个快速的进程内键值存储数据库,所以不得不退出会很浪费查询过程.

Why I'm not interested in a standalone index server: I use a fast in-process key-value store database, so it'd be quite a waste having to go out of process for querying.

推荐答案

只是对我之前答案的更新 - 因为讨论太多了,我不希望这个更新丢失.

Just an update to my earlier answer - since there was so much discussion I didn't want this update to get lost.

你可以下载它 这里:

这篇关于Node.js 有没有好的索引/搜索引擎?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

js删除数组中指定元素的5种方法
在JavaScript中,我们有多种方法可以删除数组中的指定元素。以下给出了5种常见的方法并提供了相应的代码示例: 1.使用splice()方法: let array = [0, 1, 2, 3, 4, 5];let index = array.indexOf(2);if (index -1) { array.splice(index, 1);}// array = [0,...
2024-11-22 前端开发问题
182

JavaScript小数运算出现多位的解决办法
在开发JS过程中,会经常遇到两个小数相运算的情况,但是运算结果却与预期不同,调试一下发现计算结果竟然有那么长一串尾巴。如下图所示: 产生原因: JavaScript对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会...
2024-10-18 前端开发问题
301

JavaScript(js)文件字符串中丢失"\"斜线的解决方法
问题描述: 在javascript中引用js代码,然后导致反斜杠丢失,发现字符串中的所有\信息丢失。比如在js中引用input type=text onkeyup=value=value.replace(/[^\d]/g,) ,结果导致正则表达式中的\丢失。 问题原因: 该字符串含有\,javascript对字符串进行了转...
2024-10-17 前端开发问题
437

layui中table列表 增加属性 edit="date",不生效怎么办?
如果你想在 layui 的 table 列表中增加 edit=date 属性但不生效,可能是以下问题导致的: 1. 缺少日期组件的初始化 如果想在表格中使用日期组件,需要在页面中引入 layui 的日期组件,并初始化: script type="text/javascript" src="/layui/layui.js"/scrip...
2024-06-11 前端开发问题
455

Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript
Rails/Javascript: How to inject rails variables into (very) simple javascript(Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript)...
2024-04-20 前端开发问题
5

CoffeeScript 总是以匿名函数返回
CoffeeScript always returns in anonymous function(CoffeeScript 总是以匿名函数返回)...
2024-04-20 前端开发问题
13