首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

学习compass遇到困难了,搞了三天头都要炸了解决办法

2012-05-28 
学习compass遇到困难了,搞了三天头都要炸了看了下lucene,后来看到compass这个框架。现在在做一个图书的搜索

学习compass遇到困难了,搞了三天头都要炸了
看了下lucene,后来看到compass这个框架。
现在在做一个图书的搜索实现,在做检索的时候发现compass不支持cascade   ,
高手指点下吧   ,不然又要“流产”了

  book.cmp.xml
=======================================================================
<?xml   version= "1.0 "?>
<!DOCTYPE   compass-core-mapping   PUBLIC  
        "-//Compass/Compass   Core   Mapping   DTD   1.0//EN "
        "http://www.opensymphony.com/compass/dtd/compass-core-mapping.dtd ">
<compass-core-mapping   package= "com.jlive.search.beans ">
<class   name= "Book "   alias= "book ">

<id   name= "id "   />

 

<property   name= "bookname ">

<meta-data> bookname </meta-data>

</property>
<property   name= "contents ">

<meta-data> contents </meta-data>

</property>

<property   name= "publication ">

<meta-data> publication </meta-data>

</property>

<property   name= "publicationdate ">

<meta-data> publicationdate </meta-data>

</property>
<component   name= "author "   cascade= "all "   ref-alias= "author "/>


</class>


</compass-core-mapping>


author.cpm.xml
=====================================================================
<?xml   version= "1.0 "?>
<!DOCTYPE   compass-core-mapping   PUBLIC  
        "-//Compass/Compass   Core   Mapping   DTD   1.0//EN "
        "http://www.opensymphony.com/compass/dtd/compass-core-mapping.dtd ">
<compass-core-mapping   package= "com.jlive.search.beans ">
<class   name= "Authors "   alias= "author ">

<id   name= "id "   />

<property   name= "introduction ">

<meta-data> introduction </meta-data>

</property>
<reference   name= "books "   cascade= "all "   ref-alias= "book "/>
<property   name= "authorname ">

<meta-data> authorname </meta-data>

</property>
<property   name= "telephone ">

<meta-data> telephone </meta-data>

</property>
</class>


</compass-core-mapping>

=======================================================================
compass   =   (Compass)   ApplicationContextUtil.getFactory().getBean(
"compass ");
CompassTemplate   template   =   new   CompassTemplate(compass);

template.execute(new   CompassCallbackWithoutResult()   {
protected   void   doInCompassWithoutResult(CompassSession   session)
throws   CompassException   {

CompassQueryBuilder   queryBuilder   =   session.queryBuilder();
//   The   following   search   will   result   in   matching   "london "   against


//   "familyName "
//   CompassHits   hits   =
//   queryBuilder.term( "book.author.authorname ",   "jlive ").hits();
CompassHits   hits   =   queryBuilder.term( "authorname ",
"jlive ").hits();


==========================================================================

打印的结果:


Authors   value   =   (Authors)   hits.data(hitNumber);
Resource   resource   =   hits.resource(hitNumber);
System.out.println( "ALIAS   [ "   +   resource.getAlias()   +   "]     SCORE   [ "
+   hits.score(hitNumber)   +   "] ");
System.out.println( "::::   "   +   value.getAuthorname());
System.out.println( " "   +   value.getBooks());


Found   [1]   hits   for     query
======================================================
ALIAS   [author]     SCORE   [1.0]
::::   jlive
null




[解决办法]
贴子要沉了,难道没人用过compass吗???

热点排行