Tag: search

有没有一个中文全文search引擎在nodejs

我打算在我的Web应用程序中添加一个中文全文search引擎function。 但是,我没有find任何现有的解决scheme。 nodejs中有search引擎的解决scheme,但不支持中文。 所以我的问题是: 如果在nodejs中有现成的解决scheme,那就太棒了。 同时,我也很开放,知道如何从头开始build设。 我也开放知道在其他编程语言是否有这样的解决scheme。 作为search引擎的新手,我想从基础结构,关键组件和其他资源上听到更多的build议。 谢谢,肖恩

Mongoose,nodejs,全文search

我正在尝试使用Mongoose和nodejs设置一个简单的关键字全文search,这是迄今为止的代码: var db = mongoose.createConnection('localhost', config.mongoDbName) , ContSchema = Schema({ 'idUser': String, 'title': String, 'category': String, 'slug': String, 'description': String }) .index({ 'title':'text', 'description':'text' }) , ContModel = db.model('Cont', ContSchema); db.on('error', function (err) { console.error.bind(console, 'Mongoose connection error:' + err); }); db.once('open', function () { process.stdout.write('Connection to mongodb db done…'); }); 然后我做search查询: var getAllBy = […]

使用search索引进行过滤

我想实现* .epub-Files的全文search。 所以我分出了epub-full-text-search模块( https://github.com/friedolinfoerder/epub-full-text-search )。 我会有很多电子书进行search,所以我想有一种方法,只能在一个特定的电子书search一次。 我怎么能用search-index来做到这一点。 我编写了一个解决scheme,允许在字段中search文件名 (epub的唯一文件名)和正文 (章节的内容),但是这并不认为这是正确的方式来做到这一点,性能也不理想。 以下是我如何使用search-index进行search的一个示例: searchIndex.search({ query: [{ AND: [ {body: ['epub']}, {filename: ['accessible_epub_3']} ] }] }); 有一个更好的方法吗。 也许有桶,类别和filter? 谢谢你的帮助!

如何使用Sail.js和MySQL实现全文search?

我不认为Waterline目前支持这个function。 那么,为了使用户能够在应用程序中使用全文searchfunction,还需要安装哪些其他npm软件包? 我希望我的用户在一个input中input关键字,然后服务器从我指定的数据库的多个表中的多个列中返回过滤的数据。 我的networking应用程序利用Angular.js,Sails.js和MySQL。

MongoDB检查列表中的多个正则expression式匹配自由文本search

我build立了一个mongoDB数据库,允许(简单)使用多键的关键字search这里推荐。 logging看起来也很相似: { title: { title: "A river runs through", _keywords: ["a","river","runs","through"] ) , … } 我使用nodejs服务器端,所以我使用JavaScript。 以下查询将匹配(这是在mongoterminal中运行): > db.torrents_sorted.find({'title._keywords' : {"$all" : ["river","the"]} }).count() 210 但是,这些不: > db.torrents_sorted.find({'title._keywords' : {"$all" : ["/river/i","/the/i"]} }).count() 0 > db.torrents_sorted.find({'title._keywords' : {"$all" : [{ "$regex" : "river", "$options" : "i" },{ "$regex" : "the", "$options" : "i" }]} […]

elasticsearch:保留冗余(非规范化)的数据或保留一个交叉引用的ID列表?

将冗余数据存储在索引中还是有两个索引,然后交叉引用它们会更好吗? 即,用户想要在剧院看电影。 由于用户有兴趣通过剧院查看电影,所以我们可以有电影nested_type的剧院索引: // Here, movies field will be a Nested Type, not Object Type. eclient.index({ index: 'myindex', type: 'theater', id: 1, body: { name: "Grand Cinema", description: "Come watch movies!", movies: [ { title: "Red November", description: "A submarine hunt", rated: "R", score: 10.0 }, { title: "Cinderbrella", description: "A burnt umbrella", rated: "PG", […]

expressjs node.js为google / etc bot和人stream量提供不同的数据

我想确定传入的请求是来自bot(例如google,bing)还是人类,并且为每个客户端提供不同的数据,例如用于客户端JavaScript的json数据来构build站点或预处理的html。 使用expressjs,有没有一个简单的方法来做到这一点? 谢谢。

用部分stringsearchmongoose的文本

您好我正在使用mongoosesearch我的collections中的人。 /*Person model*/ { name: { first: String, last: String } } 现在我想用查询search人员: let regex = new RegExp(QUERY,'i'); Person.find({ $or: [ {'name.first': regex}, {'name.last': regex} ] }).exec(function(err,persons){ console.log(persons); }); 如果我search约翰我得到的结果(事件,如果我search乔 )。 但是,如果我searchJohn Doe,我显然没有得到任何结果。 如果我将QUERY更改为John | Doe,我会得到结果,但是它会返回所有在John / Doe中包含最后/名字的人员。 接下来的事情是用mongoose文本search尝试: 首先添加字段索引: PersonSchema.index({ name: { first: 'text', last: 'text' } },{ name: 'Personsearch index', weights: { name: […]

使用Node.JS的iOS Firebase Flashlight / ElasticSearch Heroku安装程序

我正在使用Firebase后端在Swift中构build一个iOS应用程序。 我需要高级search选项为我的应用程序。 我被告知我应该通过这个github链接使用Flashlight / ElasticSearch https://github.com/firebase/flashlight 假设我的应用程序的名称是SneakerSearch和我的 Firebase Project_ID is- sneakersearch-az12 Firebase Web_API_Key is- abc123XYZ000… Firebase App_Url is- gs://sneakersearch-az12.appspot.com 我需要一些build议与设置这个步骤,因为我是新的Heroku和Node.js。 我以前从来没有学过,但我已经安装了Heroku工具带,并完成“sudo gem heroku安装”。 我列出了Github的方向/步骤和我为每个方向所采取的步骤。 我需要指导帮助:1,4,5,6,9,10,12和15。 1.Install and run ElasticSearch or add Bonsai service via Heroku 我在Heroku做了一个帐户。 1.问题:我是否需要创build应用程序的名称,并在设置Heroku帐户后进行部署,还是应该等到步骤#9? 2.git clone https://github.com/firebase/flashlight 2.我把上面的东西克隆到我的iOS应用程序的项目文件夹中 3.npm install 3.提示我首先运行“npm init”,然后运行“npm install” 4. edit config.js (see comments at the top, you […]

NodeJS:如何在服务器端观看大量的文件/文件夹进行更新?

我正在开发一个小型的NodeJS应用程序,它基本上用作基于浏览器的桌面search,以便用户可以查询的基于局域网的服务器。 在局域网上的用户都可以访问该服务器上的共享文件夹,传统上习惯于将文件夹放在该文件夹中以便在每个人之间共享,并且我希望保持该过程相同。 我碰到的第一个解决scheme是fs.watchFile ,在其他的stackoverflow问题上已经被触及。 在第一个问题中,用户Ivo Wetzel指出,在linux系统上,fs.watchFile使用inotify,但是认为fs.watchFile不应该用于大量的文件/文件夹。 在关于fs.watchFile的另一个问题中 ,用户tjameson首先重申,在Linux上,inotify将被fs.fileWatch使用,并推荐使用node-inotify-plusplus和node-walk的组合,但是再次声明这种方法不应该用于大量的文件。 有了评论和回应,他build议只查看目录的修改时间,然后重新扫描相关目录以更改文件。 我的最大障碍似乎是,即使有tjameson的build议,受监控文件夹的数量仍然有很大的限制(其中有很多不断增长的文件夹)。 此外,它将不得不做recursion,因为目录树是有点深,也可能会受到更改在较低的分支机构,所以我将不得不在每个文件夹级别监视以下(或者监视修改时间的文件夹,然后扫描以查明发生了什么): 创build文件或子文件夹 删除文件或子文件夹 移动文件或子文件夹 删除自我 自我移动 假设inotify的限制与上面所说的一致,那么当我拥有大量的嵌套子文件夹时,这对我来说似乎可能是太多监视器。 真正的真棒方式看起来像它会涉及kqueue ,我后来发现,作为一个更好的fs.fileWatch在谷歌组讨论的话题。 在我看来很清楚,保持相关文件和文件夹信息的数据库是在事物的查询方面的适当的操作过程,但是保持该数据库与在所关注的目录下的文件系统的实际状态同步将是挑战。 那么社区是怎么想的呢? 有没有一个更好的或众所周知的解决scheme来攻击这个问题,我只是不知道? 最好只是观察所有感兴趣的目录,例如修改时间,然后扫描以查明发生了什么? 观察所有相关的inotify警报并适当地修改数据库是否更好? 这不是像我这样的农民可以解决的问题吗?