不做浮躁的人
          正在行走的人...
          posts - 171,  comments - 51,  trackbacks - 0
          索引的對象遵循以下原則:
          實現默認的無參數構造器,不要是public的。便于compass采用Constants.newInstance()
          提供identifier,
          提供訪問和設置方法
          建議重載equals和hashcode方法。建議以業務主鍵為參考。

          alias:每一個影射定義都注冊了一個別名。這個別名用來聯系類的osem定義和類本身。
          Root:在compass中有兩類可搜索的類:root searchable和non-root searchable 類。root searchable類最好定義作為hits結果返回的類。non-root searchable類不要求定義id影射。

          子索引:默認情況下,每一個root searchable類都有自己的子索引,名稱缺省為alias。子索引的名稱也可以自由控制。允許幾個root searchable類索引到相同的子索引中?;蛘哂米铀饕齢ash功能。

          searchable id不要求定義搜索的元數據,如果沒有定義,compass自動創建內部的元數據id。如果searchable id不需要被搜索,那么需要為它定義一個可搜索元數據。注意下面的元數據定義方式:

          @Searchable
          public class Author {
          @SearchableId(name = "id")
          private Long id;
          // ...
          }

          @Searchable
          public class Author {
          @SearchableId
          @SearchableMetaData(name = "id")
          private Long id;
          //

          Searchable Constant:允許對一個類定義一系列的的常量數據。對于添加靜態元數據是非常有用的。
          <constant>
          <meta-data>type</meta-data>
          <meta-data-value>person</meta-data-value>
          <meta-data-value>author</meta-data-value>
          </constant>

          Searchable Dynamic Meta Data:允許將表達式的結果保存到搜索引擎中。該影射不能影射任何類屬性。動態元數據的值是根據動態轉換器計算表達式得到的。compass內建了比如el,jexl,velocity,ognl,groovy等轉換器。當定義表達式后。root 類被注冊為data key下的值。
          <dynamic-meta-data name="test" converter="jexl">
          data.value + data.value2
          </dynamic-meta-data>

          Searchable Reference:映射root類和其它類之間的關系。在marshals的過程中,只marshal參考對象的id。但是在unmarshal過程中根據id裝載參考的對象。
          compass在參考對象上不執行任何級聯操作,也不提供延遲加載。
          <class name="A" alias="a">
          <id name="id" />
          OSEM - Object/Search Engine Mapping
          Compass - Java Search Engine 40
          <reference name="b" />
          <!-- ... -->
          </class>
          <class name="B" alias="b">
          <id name="id" />
          <!-- ... -->
          </class>

          Searchable Component:嵌入一個可搜索類到本身的搜索類中。組件參考搜索類能夠設置為?Root。為Root的組件一般都是具有id屬性。比如人員和姓名組件(non-root),人員和帳戶(root)。
          <class name="A" alias="a">
          <id name="id" />
          <component name="b" />
          <!-- ... -->
          </class>
          <class name="B" alias="b" root="false">
          <!-- ... -->
          </class>

          繼承處理:
          <class name="A" alias="a">
          <id name="id" />
          <property name="aValue">
          <meta-data>aValue</meta-data>
          </property>
          </class>
          <class name="B" alias="b" extends="a">
          <property name="bValue">
          <meta-data>aValue</meta-data>
          </property>
          </class>

          Root 類有自己的索引,而依賴Root類的非Root類不需要索引。
          Class mapping能夠繼承其它class mapping(可以超過一個)。也能夠繼承contract mapping。

          contract:相當于java語言中的接口。如果有幾個相同的類具有相似的屬性。就可以定義一個contract。然后在子類中extend該contract。
          posted on 2006-12-02 01:15 不做浮躁的人 閱讀(1943) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          <2006年12月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(9)

          隨筆分類(31)

          隨筆檔案(75)

          文章分類(1)

          文章檔案(3)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宁远县| 桦甸市| 斗六市| 琼海市| 建平县| 泸州市| 疏勒县| 互助| 曲沃县| 平凉市| 雅江县| 中超| 来凤县| 罗江县| 怀来县| 博兴县| 迁西县| 哈巴河县| 新丰县| 苗栗县| 新化县| 衡东县| 肇源县| 堆龙德庆县| 齐齐哈尔市| 昭苏县| 呼图壁县| 黄陵县| 肇源县| 张北县| 稻城县| 顺平县| 泾阳县| 阜宁县| 普安县| 攀枝花市| 台北县| 余江县| 阜阳市| 万州区| 天柱县|