用Compass索引,Lucene搜索 得到主键的问题

shingo7 2008-09-03
最近要做全文检索,网上比较多的都采用compass
我看了一下,compass在做索引方面确实非常方便,但是关于它的*.cpm.xml文件的一些属性一直有困扰.



Xml代码
<compass-core-mapping> 
    <class 
        name="capinfo.bmservice.question.bo.FaqQuestion" 
        alias="question"> 
          
        <id name="qid" /> 
        <property name="qname"> 
            <meta-data>questionTitle</meta-data> 
        </property> 
 
        <property name="qanswer"> 
            <meta-data >questionAnswer</meta-data> 
        </property> 
 
    </class> 
</compass-core-mapping> 

<id name="qid" />
对应着POJO的qid,即是数据库这个表的主键



后来在查询时

Java代码
indexSearcher = new IndexSearcher("D://question/");               
   QueryParser queryParser = new QueryParser("questionAnswer",new StandardAnalyzer());                
   Query query = queryParser.parse("food");     
   Hits hits = indexSearcher.search(query);               
   System.out.println(hits.doc(0).get("qid")); 
       

我想通过 get("qid")的方式取得id,但得到的却是null.

请问:

1.如果得到搜索结果的id?

2.<id name="qid" /> 这句话到底有没将id存入索引?

Global site tag (gtag.js) - Google Analytics