閱讀229 返回首頁    go 阿裏雲 go 技術社區[雲棲]


基於lucene搜索引擎的Hibernate Search,官方文檔翻譯

由於自己的項目需要用到搜索引擎,於是想到使用lucene,封裝了lucene的框架有compass,solr,hibernate search.

網上對這些框架的描述有:

  • Compass:是在Lucene的基礎上做了封裝,支持索引事務控製和增量索引,同時也能夠和主流的SSH框架完美地整合在一起,操作Compass類似於操作Hibernate,它們的類/方法等設計的非常相似。

    項目主頁:https://www.compass-project.org/

    該項目已經很久沒有更新維護了,官方網站顯示最後維護時間在2009-04-06

  • Solr:同樣由Apache軟件基金會提供和支持,基於Lucene的全文搜索服務器,采用Java5開發。同時對其進行了擴展,提供了比Lucene更為豐富的查詢語言,同時實現了可配置、可擴展並對查詢性能進行了優化,並且提供了一個完善的功能管理界麵,是一款非常優秀的全文搜索引擎。

    Solr是一個獨立的企業級搜索應用服務器,它對外提供類似於Web-service的API接口。用戶可以通過http請求,向搜索引擎服務器提交一定格式的XML文件,生成索引;也可以通過Http Get操作提出查找請求,並得到XML格式的返回結果

    項目主頁:https://lucene.apache.org/solr/

  • Hibernate Search:基於Lucene的基礎上建立的主要用於Hibernate的持久化模型的全文檢索工具。像Lucene這樣的檢索引擎能夠給我們的項目在進行檢索的時候帶來非常高的效率,但是它們在基於對象的檢索時會有一些問題,比如不能實現檢索內容跟實體的轉換,Hibernate Search正是在這樣的情況下發展起來的,基於對象的檢索引擎,能夠很方便的將檢索出來的內容轉換為具體的POJO(實體對象)。此外Hibernate Search能夠根據需要進行同步或異步的索引更新。

    項目主頁:https://hibernate.org/subprojects/search.html


我的項目使用的開發語言是java,搭配ssh框架的j2ee應用。所以我選用hibernate search.方便快捷,開箱即用、

學習參考資料是通過官方的文檔。

網上好像沒有中文文檔的翻譯。找到了一個是3.3版本,別人翻譯的。是從第4章開始翻譯。

https://hpi-ls.blog.163.com/blog/static/2021474820101129105312604/?COLLCC=3931790462&COLLCC=4110777774&


還搜到一個https://wiki.redsaga.com,但是不知道為什麼不能訪問,翻牆了也不行

現在已經是到4.2 Final,所以我從第一章開始邊學邊翻譯吧。第4章以後就參考上麵那個兄弟翻譯的,綜合自己的吧。

接下來我會不定期的更新翻譯的章節...

有朋友覺得翻譯不妥,需要更改的地方可以給我留言、


Preface
1. Getting started
1.1. System Requirements
1.2. Using Maven
1.2.1. Using a Maven Archetype
1.3. Configuration
1.4. Indexing
1.5. Searching
1.6. Analyzer
1.7. What's next
2. Architecture
2.1. Overview
2.2. Back end
2.2.1. Lucene
2.2.2. JMS
2.2.3. JGroups
2.3. Reader strategy
2.3.1. shared
2.3.2. not-shared
2.3.3. Custom
3. Configuration
3.1. Enabling Hibernate Search and automatic indexing
3.1.1. Enabling Hibernate Search
3.1.2. Automatic indexing
3.2. Configuring the IndexManager
3.2.1. directory-based
3.2.2. near-real-time
3.2.3. Custom
3.3. Directory configuration
3.3.1. Infinispan Directory configuration
3.4. Worker configuration
3.4.1. JMS Master/Slave back end
3.4.2. JGroups Master/Slave back end
3.5. Reader strategy configuration
3.6. Tuning Lucene indexing performance
3.6.1. Control segment size
3.7. LockFactory configuration
3.8. Exception Handling Configuration
3.9. Index format compatibility
4. Mapping entities to the index structure
4.1. Mapping an entity
4.1.1. Basic mapping
4.1.2. Mapping properties multiple times
4.1.3. Embedded and associated objects
4.2. Boosting
4.2.1. Static index time boosting
4.2.2. Dynamic index time boosting
4.3. Analysis
4.3.1. Default analyzer and analyzer by class
4.3.2. Named analyzers
4.3.3. Dynamic analyzer selection
4.3.4. Retrieving an analyzer
4.4. Bridges
4.4.1. Built-in bridges
4.4.2. Tika bridge
4.4.3. Custom bridges
4.5. Conditional indexing: to index or not based on entity state
4.6. Providing your own id
4.6.1. The ProvidedId annotation
4.7. Programmatic API
4.7.1. Mapping an entity as indexable
4.7.2. Adding DocumentId to indexed entity
4.7.3. Defining analyzers
4.7.4. Defining full text filter definitions
4.7.5. Defining fields for indexing
4.7.6. Programmatically defining embedded entities
4.7.7. Contained In definition
4.7.8. Date/Calendar Bridge
4.7.9. Defining bridges
4.7.10. Mapping class bridge
4.7.11. Mapping dynamic boost
5. Querying
5.1. Building queries
5.1.1. Building a Lucene query using the Lucene API
5.1.2. Building a Lucene query with the Hibernate Search query DSL
5.1.3. Building a Hibernate Search query
5.2. Retrieving the results
5.2.1. Performance considerations
5.2.2. Result size
5.2.3. ResultTransformer
5.2.4. Understanding results
5.3. Filters
5.3.1. Using filters in a sharded environment
5.4. Faceting
5.4.1. Creating a faceting request
5.4.2. Applying a faceting request
5.4.3. Restricting query results
5.5. Optimizing the query process
5.5.1. Caching index values: FieldCache
6. Manual index changes
6.1. Adding instances to the index
6.2. Deleting instances from the index
6.3. Rebuilding the whole index
6.3.1. Using flushToIndexes()
6.3.2. Using a MassIndexer
7. Index Optimization
7.1. Automatic optimization
7.2. Manual optimization
7.3. Adjusting optimization
8. Monitoring
8.1. JMX
8.1.1. StatisticsInfoMBean
8.1.2. IndexControlMBean
8.1.3. IndexingProgressMonitorMBean
9. Spatial
9.1. Enable indexing of Spatial Coordinates
9.1.1. Indexing coordinates for Double Range Queries
9.1.2. Indexing coordinates in a Grid with Quad Trees
9.1.3. Implementing the Coordinates interface
9.2. Performing Spatial Queries
9.2.1. Returning distance to query point in the search results
9.3. Multiple Coordinate pairs
9.4. Insight: implementation details of Quad Tree indexing
9.4.1. At indexing level
9.4.2. At search level
10. Advanced features
10.1. Accessing the SearchFactory
10.2. Using an IndexReader
10.3. Accessing a Lucene Directory
10.4. Sharding indexes
10.5. Sharing indexes
10.6. Using external services
10.6.1. Exposing a service
10.6.2. Using a service
10.7. Customizing Lucene's scoring formula
11. Further reading

最後更新:2017-04-03 18:52:02

  上一篇:go Chapter 1. Getting started
  下一篇:go 程序員都不讀書,但你應該讀