java - 使用 Lucene MultiFieldQueryParser 处理多个必填字段

标签 java apache lucene

我正在尝试使用 MultiFieldQueryParser 执行以下搜索:

内容:hello world 优先级:高

也就是说,我想查看返回的包含“hello”和“world”单词且优先级为“high”的文档。 MultiFieldQueryParser 的默认行为似乎返回包含内容的任何内容:hello world 或优先级:高 - 我不知道如何更改它。

有什么建议吗?

最佳答案

当您想要跨多个字段搜索术语时,可以使用 MultiFieldQuery。您正在寻找的是一个带有两个子句的简单 boolean 查询。如下查询应该可以工作。

+(+contents:hello +contents:world) +priority:high

这里有一个带有 to Occur.MUST 子句的 boolean 查询,其中一个是包含两个子句的 boolean 查询,另一个是术语查询。

关于java - 使用 Lucene MultiFieldQueryParser 处理多个必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5035782/

相关文章:

java - Struts 2 Junit 测试用例执行失败(StrutsTestCase.getActionProxy :138 » NullPointer)

javascript - 如何使用 selenium webdriver 提取 <nobr> 中的动态文本?

php - 更改 Apache 配置文件后的 Symfony 路由问题

java - 如何以编程方式比较两个基于视觉差异的 PDF?

java - 使用 @RunWith(PowerMockRunner.class) 时如何解决 java 单元测试中的链接错误

java - Java并发性–立即关闭线程池

java - 我一次运行多个异步任务,我只想关闭这三个任务中的一个

对本地 apache 服务器的 Java http 请求 - UnknownHostException

elasticsearch - 基于前缀和自定义标记器的Elasticsearch自动建议

javascript - 通过javascript全文搜索CD-Rom上的静态HTML文件