使用搜索索引进行过滤

时间:2016-07-15 08:26:05

标签: javascript node.js search full-text-search leveldb

我想实现* .epub-Files的全文搜索。因此,我分叉了 epub-full-text-search 模块(https://github.com/friedolinfoerder/epub-full-text-search)。 我会有很多电子书需要搜索,所以我希望能够一次只搜索一个特定的电子书。

我怎么能用搜索索引做到这一点。我编写了一个解决方案,允许搜索字段 filename (epub的唯一文件名)和 body (章节的内容),但这感觉不到喜欢这是正确的方法,性能也不理想。

以下是我使用search-index进行搜索的示例:

searchIndex.search({
    query: [{
        AND: [
            {body: ['epub']},
            {filename: ['accessible_epub_3']}
        ]
    }]
});

有没有更好的方法来做到这一点。也许使用存储桶,类别和过滤器?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

搜索索引(epub-full-text-search所基于的)为每个与任何给定查询匹配的文档/项目返回一个搜索结果。我的猜测是你想知道epub文件中的哪个位置会受到影响。如果某个段落是一个足够好的搜索结果项,我会索引段落。每个段落都有一个唯一的book-key作为过滤器,也许可以引用它在epub文件中的位置(页面/百分比/等)。

免责声明:我正在开展搜索索引项目。