分类: Oracle
2010-08-21 18:22:37
一个项目中要用到全文搜索,数据库是使用Oracle9I,使用Oracle Text 做了个Demo,效果不理想,主要是分词那块。打算用HubbleDotNet+盘古分词, 网上很多HubbleDotNet连接Sql 数据库的实例,这边分享下我配置Oracle连接的例子。
安装HubbleDotNet就不介绍了,可以去eaglet博客中找找相关资源。
(1)创建HubbleDotNet 连接Oracle的数据库
File – Open --CreateDatabase.sql
先更改数据库为Oracle,(Data Source 也可以不更改):
1 | exec sp_adddatabase 'zyk', 'd:\test\zyk\', 'oracle', 'Data Source=(192.168.1.109);Initial Catalog=zyk;Integrated Security=True'; |
执行 Execute。(这个时候数据库连接时出错的,不管他)
提示:Create database zyk successul.
(2)选择新建的ZYK数据库,选择DataBaseInfo
更改Deafult DB Adpter 为 Oracle8i
更改Default DB Connection Str 为
1 | provider=MSDAORA;host=192.168.1.108;data source=oracle1;user id=webtext;password=pwwebtext |
点击Change,Text 提示Success。
(3)创建表News 时同步在Oracle中创建News
选择Create Tables 表名为 News
选择Next
填写相应的字段信息,
必须提醒下:当前字段中的Nvarchar Oracle 不支持,那就选择Varchar吧
字段长度设置为2000 和4000 。接着 Next Finish。
这个时候 直接往表 News 导入相关数据。在Oracle中用PL/SQL 也可以查询到相应结果。
再查询 select * from news where title contains '厦门' 没有结果。朋友说是没有建索引。
(4)创建一个 HubbleDotNet 表 同步于 Oracle
同样的 选择表名为 Onew
至于Incremental Model 下选项的意思 大家可以看看
HubbleDotNet 开源全文搜索数据库项目--为数据库现有表或视图建立全文索引(一) Append Only 模式 这篇文章。填写相关信息。
查询测试:
1 | select * from onews |
contains 查询
1 | select * from onews where title contains '厦门' |
多个关键字Contain 查询:
有个问题,(3)中朋友说表没有建索引,这个还要再研究研究。