【问题标题】:Lucene get list of matched keywordsLucene 获取匹配关键字列表
【发布时间】:2015-04-16 10:04:45
【问题描述】:

我有一个基于 Java (lucene 4) 的应用程序和一组作为搜索查询输入应用程序的关键字(这些术语可能包含多个单词,例如:“记忆”、“老房子”、 “欧盟法律”等)。

我需要一种方法来从索引文档中获取匹配的关键字列表,并可能还获取文档中的关键字位置(也适用于多字关键字)。 我尝试使用 lucene highlight 包,但我只需要获取没有任何文本周围部分的关键字。它还在单独的片段中返回多词关键字。

如果有任何帮助,我将不胜感激。

【问题讨论】:

    标签: java lucene


    【解决方案1】:

    这里有一个类似(可能相同)的问题: Get matched terms from Lucene query

    你看到了吗?

    建议的解决方案是将一个复杂的查询分解成一个更简单的查询,直到你得到一个 TermQuery,然后通过 searcher.explain(query, docId) 进行检查(因为如果匹配,你就知道这是术语)。

    我认为这不是很有效,但是 它对我有用,直到我遇到 SpanQueries。对你来说可能就够了。

    【讨论】:

    • 是的,我已经看过了。谢谢你。但是,我有一个由超过 3M 个关键字组成的很长的查询。这不是很有效。我想知道是否有一个低级别的“服务”在每次搜索后保留匹配的关键字列表。
    • 到目前为止我尝试过的是使用荧光笔并在关键字周围获取匹配的片段。但不幸的是,这似乎将多词关键字的每个单词作为单独的匹配项,例如,如果搜索“欧洲国家”,它会返回:“......在 Europeancountries 人口是...”。我需要实现的是在同一个自定义标签中包含两个单词。所以我可以推断它们属于同一个关键字。
    猜你喜欢
    • 2020-05-18
    • 2011-09-24
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    相关资源
    最近更新 更多