我真的不知道,MoreLike这个查询是如何工作的。我有这个问题,假设我有两个文件,我有一些字段和一个国家字段。现在,一个文档的国家/地区字段的值为“澳大利亚”,而其他文档的国家/地区字段的值为“英格兰”。
考虑到,所有其他字段都是相同的,现在,如果对文档运行MoreLikeThis Query,它会返回另一个吗?只有国家/地区字段不同。
并且,有没有办法给予字段最高优先级?就像在这种情况下,'国家',以便lucene返回更多特定于一个国家的项目?
答案 0 :(得分:0)
我会使用BooleanQuery
将MLT查询与所需"国家"的查询结合起来。值。
例如:
MoreLikeThis mlt = new MoreLikeThis(reader);
Query mltQuery = mlt.like(docNo);
Query countryQuery = new TermQuery("country", "england");
Query finalQuery = BooleanQuery.Builder()
.add(mltQuery, BooleanClause.Occur.SHOULD)
.add(countryQuery, BooleanClause.Occur.MUST)
.build();