- 浏览: 91601 次
- 性别:
- 来自: 香港
最新评论
-
ddddddddd:
忘记说谢谢了。谢谢您共享这个插件。帮了我大忙
Rails plugin: i18n -
ddddddddd:
我下载并使用了你的插件,感觉效果很好,不向其他同样功能的那样庞 ...
Rails plugin: i18n
搜尋器改變了人們的習慣。當有能力在互聯網上用 0.01 秒的搜尋就找到想要的資料時,如果我們的軟件要花個幾秒甚至幾分鐘才找到資料,用家就會覺得這個軟件很差勁了。
怎樣去做搜尋?
最近單的方法莫過於 SELECT * FROM MYTABLE WHERE CONTENT LIKE '%KEYWORD1%' OR '%KEYWORD2%' 。我們的專案就是用這個方法搜尋用戶地址。這個方法完全沒有問題 — 起碼 — 在這一年多的開發、測試環境也沒有問題。直到在實際環境中 — 有上百萬條記錄的資料庫 — 這種搜尋對資料庫的壓力太大了。試想著每次也由頭到尾由「黃頁」找一個人吧。每條查詢花上2秒以上的時間,我們的系統可是有 3000 個同時的用家啊!
全文搜索
全文搜索是另一個方法。它的原理是把文件每一個字也加進索引中,就如查「黃頁」可以直接打開相關的頁數一樣,效率比傳統方法快上一個數量級。
Lucene 是一個 Java 的全文搜索工具,利用它任何 Java 軟件也可以為任何文件作全文搜索。它分成兩部份:索引和搜尋。前者把文件經整理和分詞化成可以搜尋的索引;後者則由用者的查詢返回相關結果。Lucene 的擴展性很高,開發者可以編寫不同的 document parser 讓 lucene 支援任何文檔,擴展 Analyzer 以支援不同的語言,也可以自定 query parser 改變搜尋的特性。
Lucene 的發展相當成熟,我可不用班門弄斧寫教學了,初學者請讀 IBM developerWorks 实战 Lucene,第 1 部分: 初识 Lucene 。
Ruby on Rails 的全文搜索
提起全文搜索不能不提 Ruby on Rails 的全文搜索解決方案:act_as_ferret了,它是個基於 Lucene 設計的,Ruby on Rails 的全文搜尋工具。 只需要在 Model 中加一句:act_as_ferret,你的 data model 就立即有全文搜索功能!這在以前就像奇跡啊!要搜尋也易如反掌,如 Address.find_by_content('district:mong kok AND name:tong') 就行了,Query 是跟 Lucene 一樣的,使用過 Lucene 的開發者不會有問題。
小小的問題:Terret 的預設 Analyzer 並不支援 CJK 的分詞,完全不能索引中文文件。不過用 lukhnos 發表的簡單 regular expression analyzer 己經可以解決基本的問題了。
相關連結:
- Lucene
- 实战 Lucene,第 1 部分: 初识 Lucene
- 深入 Lucene 索引机制
- act_as_ferret Project
- acts_as_ferret: Rails全文搜尋快速上手(與中日韓文支援)
- 快快樂樂學 Ruby - 再談 Ferret
发表评论
-
Code Geass CD入手
2007-08-23 14:12 1269終於入手了,Code Geass 的 OST2 和 モザイ ... -
Kaomoji (顔文字, emoticon) plugins for Rails
2007-08-23 16:15 1191Nothing big, just a little toy ... -
調查發現八達通易辦事轉賬系統一直有問題,涉款370萬元
2007-07-27 15:34 1214八達通承認易辦事7年扣錯錢 Via 明報即時新聞 早前,八達 ... -
Ruby on Rails plugin: QRCode
2007-07-23 14:42 1545I come across this page, a java ... -
[轉播] 呼籲:抵制7月25日明光社賣旗活動
2007-07-20 18:07 1189原文 @ 無神論者的巴別塔 慈善,只為幫助有需要的弱勢社群 ... -
Using AjaxMessaging to create a chatroom in 5 mins
2007-07-07 16:41 1256中文版: 用 AjaxMessaging 在五分鐘內造一個 c ... -
用 AjaxMessaging 在五分鐘內造一個 chat room
2007-07-07 17:03 1401English version: Using AjaxMess ... -
AjaxMessaging - bring realtime messaing to Ruby on Rails
2007-07-02 18:22 1409Proudly present my new plugins ... -
Eclipse 發表 Europa
2007-07-02 02:56 1125Eclipse Europa 是今年的 Eclipse 新版本 ... -
Ruby on Rails + AJAX + Mongrel + JMS/MQ/MOM = 即時通訊
2007-07-01 11:59 1589前文研究過利用 Flash XML ... -
更新: Ruby on Rails plugin i18n
2007-06-29 16:59 1313讀了 Takol 的 【ROR開發筆記】MultiLingua ... -
使用 Rails 和 Juggernaut 作即時通訊
2007-06-27 15:33 1594AJAX 在 AJAX 出現前,傳 ... -
Rails plugin: i18n
2007-06-06 14:23 1444An update from mod-i18n module. ... -
網摘 20070529 - 因為 Rails 放下其他事
2007-05-29 05:45 927網路與技術 RoR vs. PHP?談 web 開發技術的未 ... -
網摘 20070510
2007-05-10 06:01 984Web 微軟500億美元收購Yahoo!之傳言大拆解 - 與 ... -
Adobe 宣佈開放 Flex 的源碼
2007-04-27 03:43 1051重大消息:四月二十六日,Adobe 宣佈他們將會開放 Flex ... -
Defensive Design for the Web
2007-04-22 14:00 1066Defensive Design for the WebHo ... -
Aptana 繼 RadRails 後再宣佈和 RDT 合併
2007-04-21 16:10 1281Aptana 今天宣佈和 RDT 合併,該公司並會僱請 RDT ... -
20070416 網摘 - 知識+世代
2007-04-16 05:25 1028知識+世代 知識+型社會 - 當中學生只懂得使用 Yahoo ... -
Google 發表谷歌輸入法
2007-04-15 02:09 1331之前聽說Google 開放分析一萬億字所得的資料,但那只在英文 ...
相关推荐
总之,Lucene作为Java全文搜索的基石,提供了强大的功能和灵活性,可以帮助开发者构建高效、精准的搜索功能,无论是简单的关键词搜索还是复杂的模糊和智能查询,都能游刃有余地应对。结合"用户管理手册.docx"的学习...
XWiki选择Lucene作为其全文搜索的后台引擎,是因为Lucene的高效性和灵活性。XWiki中的每个文档都被视为一个独立的信息单元,通过Lucene的索引机制,可以快速地对文档内容进行检索。XWiki通过扩展其核心服务,实现了...
【全文搜索Lucene & ElasticSearch】是一门关于安装和入门的课程,主要涵盖了全文检索的基本概念,Lucene和ElasticSearch的介绍,以及如何使用Java操作ElasticSearch。全文检索,顾名思义,是对非结构化数据进行搜索...
Lucene 实现了索引和搜索的核心算法,包括倒排索引、TF-IDF(词频-逆文档频率)等,使得开发者能够快速构建自己的全文检索系统。 **一、Lucene 的核心概念** 1. **倒排索引(Inverted Index)**:这是 Lucene 最...
Java全文搜索引擎Lucene是一款开源的、高性能的文本分析和检索库,它为开发者提供了在Java应用程序中实现全文搜索功能的能力。本篇将深入探讨Lucene 3.0.0版本的核心特性、设计理念以及使用方法。 一、Lucene概述 ...
Lucene是Apache软件基金会的开源项目,它是一个高性能、全文本搜索库,被广泛用于构建各种搜索引擎。Lucene提供了一个简单但功能强大的API,开发者可以使用这个API来添加全文检索功能到自己的应用中。本文将深入探讨...
**全文搜索Lucene知识** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。它是Java语言编写,但可以被其他编程语言通过各种桥接库进行调用。Lucene的核心功能包括文本分析、索引创建、查询解析...
通过理解并熟练运用Document、Field、Directory、Analyzer和IndexWriter等核心概念,开发者可以构建出高效的全文搜索解决方案,实现类似搜索引擎的功能。在实际应用中,可以根据需求调整分析器、优化索引策略,以...
通过深入学习HeyJava和传智播客提供的Lucene源码教程,你将能掌握如何在实际项目中运用Lucene,创建高效、精准的全文搜索引擎。同时,了解源码也有助于定制化需求,优化性能,或者解决遇到的问题。
Lucene.Net 是一个基于 Apache Lucene 的开源全文搜索引擎库,专为 .NET Framework 平台设计。它提供了一套高级文本搜索程序库,让开发者能够在 .NET 应用程序中轻松实现全文检索功能。在本案例中,我们将在 .Net ...
总结,Lucene作为一款强大的全文检索库,其核心在于索引的创建和搜索的执行。通过理解其基本概念和操作流程,开发者可以灵活地构建符合需求的全文检索系统。在实际应用中,我们还需要关注性能优化、查询复杂性和用户...
《最新全文检索 Lucene-5.2.1 入门经典实例》 Lucene是一个开源的全文检索库,由Apache软件基金...通过学习和实践这些经典实例,开发者能够掌握如何利用Lucene构建高效的全文检索系统,提升数据的可搜寻性和用户体验。
**Lucene全文检索引擎** Lucene是Apache软件基金会的一个开源项目,...总结来说,Lucene是一个强大的全文检索引擎,通过理解和掌握其工作原理及API,开发者可以构建出高效、灵活的搜索功能,满足各种复杂的搜索需求。
学习和掌握Lucene,开发者可以为自己的系统添加全文检索功能,例如,为“传智手播客贴吧”增加文章搜索功能。通过实践,可以深入理解Lucene的机制和优势。 在实际开发中,我们需要配置Lucene的开发环境,这通常只需...
Lucene则是一个高性能、全文本搜索库,提供了索引和搜索文本的强大功能,可以高效地处理大量数据的全文检索。 在Spring MVC中集成Lucene,通常包括以下几个步骤: 1. **引入依赖**:在项目中添加Lucene的相关依赖...