【问题标题】:MoreLikeThis Query, field priority?MoreLikeThis 查询,字段优先级?
【发布时间】:2016-05-17 04:32:03
【问题描述】:

我真的不知道 MoreLikeThis 查询是如何工作的。我有这个问题,假设我有两份文件,我有一些字段和一个国家字段。现在,一个文档的国家字段值为“澳大利亚”,而另一个文档的国家字段值为“英格兰”。

考虑到所有其他字段都相同,现在,如果对一个文档运行 MoreLikeThis 查询,它会返回另一个吗?只有国家/地区字段不同。

还有,有没有办法给一个字段最高优先级?就像在这种情况下,'Country',让 lucene 返回更像这个国家特定的项目?

【问题讨论】:

    标签: lucene


    【解决方案1】:

    我会使用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();
    

    【讨论】:

      猜你喜欢
      • 2014-01-05
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 2010-09-08
      • 2012-11-27
      相关资源
      最近更新 更多