【问题标题】:Lucene document BoostingLucene 文档提升
【发布时间】:2011-02-15 18:23:28
【问题描述】:

我遇到了 lucene 提升的问题,我正在尝试提升与指定的(名字)字段匹配的特定文档 我已经发布了部分代码

private static Document createDoc(String lucDescription,String primaryk,String specialString){
  Document doc = new Document();
  doc.add(new Field("lucDescription",lucDescription, Field.Store.NO, Field.Index.TOKENIZED));
  doc.add(new Field("primarykey",primaryk,Field.Store.YES,Field.Index.NO));
  doc.add(new Field("specialDescription",specialString, Field.Store.NO, Field.Index.UN_TOKENIZED));
  doc.setBoost ((float)(0.00001));
  if (specialString.equals("chris"))
  doc.setBoost ((float)(100000.1));
  return doc;
}

为什么这不起作用?

public static String dbSearch(String searchString){
  List<String> pkList = new ArrayList<String>();
  String conCat="(";
  try{
   String querystr = searchString;

   Query query = new QueryParser("lucDescription", new StandardAnalyzer()).parse(querystr);  
   IndexSearcher searchIndex = new IndexSearcher("/home/athreya/docsIndexFile");
   // Index of the User table--> /home/araghu/aditya/indexFile.
   Hits hits = searchIndex.search(query);
   System.out.println("Found " + hits.length() + " hits.");
   for(int iterator=0;iterator<hits.length();iterator++) {
    String primKey=hits.doc(iterator).get("primarykey");
    System.out.println(primKey);
    pkList.add(primKey);
   }
   searchIndex.close();

提前谢谢你 阿瑟莉亚

【问题讨论】:

    标签: java lucene scoring


    【解决方案1】:

    很难说只看代码有什么问题,有几件事可以尝试:

    1. 用 Luke 打开索引,查看文档的分数(包含“chris”)
    2. 不确定您是否绕过了一个或另一个 setboost 调用。

      if (specialString.equals("chris")) doc.setBoost ((float)(100000.1)); 别的 doc.setBoost((float)(0.00001));

    【讨论】:

    • if (specialString.equals("chris")) doc.setBoost ((float)(100000.1)); else doc.setBoost ((float)(0.00001));这里我试图在找不到文档时取消提升,如果找到则最大化它,以便找到文档的分数会很高
    • 好的,但是您上面的代码似乎违反直觉,也许将 un-boost 放在 else 语句中。还可以查看使用 Luke 的索引,它会告诉您更多关于评分的信息。
    猜你喜欢
    • 2011-06-11
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多