【发布时间】:2014-05-10 09:43:20
【问题描述】:
假设可能存在包含诸如“Facebook 以 $19 B 收购 WhatsApp”之类的短语的索引文档。我想搜索“Facebook[\s\w+]*Whatsapp”,并期望所有包含 Facebook 和 WhatsApp 的短语都由一个单词分隔(获取、购买等)。
如何在lucene中做到这一点?在 50GB 的语料库中处理数千个此类查询是否足够高效?
附言到目前为止,我已经尝试使用 RegexpQuery 进行正则表达式搜索,但无法处理多词短语。这是代码中的一行:
Term term = new Term("text", "Facebook[\\s\\w+]*Whatsapp");
Term t = new Term(userQuery);
Query query = new RegexpQuery(term);
【问题讨论】:
-
IIRC 你应该使用
SpanQuery
标签: regex search lucene wildcard