【问题标题】:How do I use native Lucene Query Syntax?如何使用原生 Lucene 查询语法?
【发布时间】:2009-07-07 18:37:55
【问题描述】:

我读到 Lucene 有一种内部查询语言,其中指定 : 并且您使用布尔运算符将这些组合起来。 我在他们的网站上阅读了所有关于它的内容,它在 LUKE 中运行良好,我可以做类似的事情

field1:value1 AND field2:value2 

它会返回看似正确的结果。

我的问题是如何将这个 who Lucene 查询传递给 API?我见过 QueryParser,但我必须指定一个字段。这是否意味着我仍然必须手动解析我的输入字符串、字段、值、括号等,或者有没有办法将整个内容输入并让 lucene 完成它?

我正在使用 Lucene.NET,但由于它是原始 java 的方法端口,因此不胜感激。

【问题讨论】:

    标签: lucene lucene.net


    【解决方案1】:

    您是在问是否需要强制用户输入该字段?如果是这样,则查询解析器有一个默认字段。这里有一点more info。只要您有一个可以完成这项工作的默认字段,他们就不需要指定字段。

    如果您询问如何从String 获取Query 对象,则需要parse 方法。它了解前面提到的字段,以及默认字段等。您只需要确保查询解析器和索引构建器都使用相同的分析。

    【讨论】:

    • 哦,所以你指定的字段只是一个默认字段,以防没有指定?
    • 如果用户搜索“red white blue”,那么解析出来的查询将搜索默认字段。相反,如果他们搜索“title:red title:white title:blue”,那么查询将只查看索引的标题字段。
    • 所以是的(对不起,我想我一开始误解了你的评论)。
    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多