是否有可能使弹性搜索亮点可链接?

时间:2015-11-02 03:57:07

标签: elasticsearch full-text-search

我成功使用ES索引文档并突出显示搜索文本。但是现在我有一个新的要求 - 使所有黄色高光可以链接,即用户必须能够潜入选定出现的页面。

我还没有实现文档的页面预览,但我确定存在一些获取页码或字节偏移量的软件并将docx或pdf页面作为图像返回。所以,我希望弹性返回出现的索引(很可能是从开头的字节偏移)。之后我可能可以使用 indexToImage 软件向用户显示出现的页面。即使这样的软件不存在,我也可以打开RandomAccessFile并读取出现页面并以某种方式向用户显示。 但无论如何我需要出现指数。是否可以从弹性中获取它?

我的搜索请求如下:

http://localhost:9200/mongofilesindex/_search?pretty&source={
    "_source": ["filename",
    "metadata"],
    "query": {
        "filtered": {
            "query": {
                "query_string": {
                    "query": "*test*"
                }
            }
        }
    },
    "highlight": {
        "pre_tags": ["<mark>"],
        "post_tags": ["</mark>"],
        "fields": {
            "content": {
                "fragment_size": 200,
                "number_of_fragments": 10
            }
        }
    }
}&size=10&from=0

当然,我可以使用ES来提取匹配的文档,然后在输入流中手动应用KMP,它在线性时间内工作。但我想要比线性更好的东西,因为我知道后缀自动机和其他复杂的数据结构可能会在O(search_string_len+occurences_count)中返回出现,这比O(doc_len)要好得多。

我确信弹性使用了如此酷的数据结构,可能我缺少一些用于获取出现索引的API。

0 个答案:

没有答案