扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要介绍“Lucene的搜索类型有哪些”,在日常操作中,相信很多人在Lucene的搜索类型有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Lucene的搜索类型有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
为芦溪等地区用户提供了全套网页设计制作服务,及芦溪网站建设行业解决方案。主营业务为成都网站设计、网站制作、芦溪网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
“ Lucene对于查询的方式较多,可以实现TermQuery、BooleanQuery、PhraseQuery、 TermRangeQuery等一系列的基于不同类型的词组的检索。在进行查询的时候可以选择合适的查询方式对文档进行查询。例如数值类型可以采用TermRangeQuery进行查询。”
查询方式大览
TermQuery(词条搜索) 词条搜索,根据单个单词进行查找的方式进行检索,Term表示的是一个个的单词,而在中文环境下则表示的是一个个的词语(分词后的词语)。例如查询标题中包含PHP的文档。
Query query = new TermQuery(new Term("title","PHP"))
BooleanQuery(组合搜索) BooleanQuery是合并多个查询条件的Query,例如合并TermQuery实现查询 标题中包含PHP并且content中同样包含PHP的文档。
BooleanQuery query = new BoolQuery();
query.add(new TermQuery(new Term("title","PHP")));
query.add(new TermQuery(new Term("content","PHP")));
PhraseQuery(短语搜索) 短语查询提供的是类似于多个关键词的查询,Term输入的只有一个词,而PhraseQuery查询的是一组词。例如查询 PHP是世界上最好的语言 就会给予出相关的文档。PhraseQuery同样有一个比较特殊的地方,就是slop,slop是指两个项之间允许的最大间隔。例如我们输入的查询条件为 世界,语言,可能中间缺少了 上、最好、的 就无法进行检索。那么如果我们想要检索到结果就需要设置slop。
PhraseQuery query = new PhraseQuery();
query.add(new Term("title","世界"));
query.add(new Term("title","语言"));
query.setslop(x); //允许的跨度或说间隔
PrefixQuery(前缀查询) 前缀查询,类似于我们常写的SQL LIKE "PHP%"进行匹配查询,简单来说就是实现通过前缀的词进行查询
PrefixQuery query = new PhrefixQuery(new Term("title","PHP"));
FuzzyQuery(模糊查询) 模糊查询,它实现的是一种基于编辑距离相似度的检索。编辑距离算法的大概意思就是一个词组转换到另一个词组的最小距离。
FuzzyQuery query = new FuzzyQUery("title","PHP");
RegexpQuery(正则表达式查询) 相信正则表达式大家都了解,Lucene实现正则表达式检索是基于词组的正则表达式检索方式
RegexQuery query = new RegexQuery(new Term("title",".*PHP.*"));
TermRangeQuery() TermRangeQuery实现的是字符串的范围查询,那么既然是范围同时有在字符串中进行范围检索的其实是检索的ASCII码值。但是其实中文场景中比较ASCII码的场景不是很多。(我只用过正则匹配),可以大概的熟悉一下,构造函数为 TermRangeQuery(String field, String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper)
TermRangeQuery query = new TermRangeQuery("title","PHP","语言",true,false);
到此,关于“Lucene的搜索类型有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流