首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何在lucene中搜索"John J“,并得到像"John Jameson”这样的人,而不仅仅是John这样的人?

我如何在lucene中搜索"John J“,并得到像"John Jameson”这样的人,而不仅仅是John这样的人?
EN

Stack Overflow用户
提问于 2017-07-07 05:14:46
回答 2查看 58关注 0票数 0

由于我无法控制的原因,我必须通过全局搜索来执行此操作。我采取了将搜索词"John J“转换为(John AND J)的方法,它适用于任何姓氏与名字不同的人。

我怎样才能使"John J“的搜索变成”找到所有拥有John的人,然后在领域中找到另一个不同的J的人“?

耽误您时间,实在对不起。

EN

回答 2

Stack Overflow用户

发布于 2017-07-07 06:51:30

例如:

代码语言:javascript
复制
Term term = new Term("secondName", "J*");
Query query = new WildcardQuery(term);

我假设你的名字和名字有不同的字段。您可以使用名和名的组合查询来创建布尔查询。

WildcardQuery文档:http://lucene.apache.org/core/6_2_0/core/org/apache/lucene/search/WildcardQuery.html

我希望这能帮到你。

票数 1
EN

Stack Overflow用户

发布于 2017-07-08 02:00:47

既然你提到了它是一种提前输入;prefixQuery可能会有所帮助-

代码语言:javascript
复制
new PrefixQuery(new Term("lastName","J"));

这将返回lastName以"J“开头的所有文档。

要获得firstName以"John“开头而 lastName以"J”开头的结果,您可以使用-

代码语言:javascript
复制
BooleanQuery.Builder booleanQueryBuilder;
booleanQueryBuilder.add(new PrefixQuery(new Term("firstName","John")));
booleanQueryBuilder.add(new PrefixQuery(new Term("lastName","J")));`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44958968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档