使用Solr快速实现Django的全文搜索[转]

 

使用Solr快速实现Django的全文搜索。http://fzuslideblog.appspot.com/2010/03/25/django_solr_search.html原文地址

Django本身并没有提供全文搜索的功能,而自己给Django添加全文搜索的功能选择也有很多,可以用Sphinx,Lucene,Xapian等等来做。这里我们选用基于Lucene的全文搜索服务器Solr来快速的搭建Django的全文搜索应用。

需要用到的开源项目:

Solrhttp://lucene.apache.org/solr/ (Apache License)

Django-solr-search: http://code.google.com/p/django-solr-search/( BSD L)

Pymmseg-cpp: http://code.google.com/p/pymmseg-cpp/ (MIT L)

Django-solr-search是用来连接Solr服务器的Django插件,Py mmseg-cpp是Python封装的mmseg中文分词模块。

1.配置环境

首先安装Solr, 下载下来直接解压,然后进入apache-solr-1.4.0/example下面,直接运行:

java -jar start.jar

然后查看http://localhost:8983/solr/,看到欢迎界面,一切ok。

然后把Django-solr-search下载下来,可以选择直接setup,也可以直接把其中 的solango放入需要增加全文搜索的Project下面。

然后修改settings.py,加入solango的app,如下:

INSTALLED_APPS = {
            ...
            'solango',
            ...
        }

 

	添加Solr的路径:

SOLR_ROOT ='path/apache-solr-1.4.0/example/'
SOLR_SCHEMA_PATH = SOLR_ROOT + 'solr/conf/schema.xml'
SOLR_DATA_DIR = SOLR_ROOT + 'solr/data'
SOLR_DEFAULT_OPERATOR = 'or'

最后在项目下运行命令:

让django启动Solr服务器 python manage.py solr --start

查看是否连接成功:

python manage.py shell

>>> import solango
>>> solango.connection.is_available()
        True

显示True,环境就搭好了。

 

2.定义Document模型

先看我们需要全文搜索的model:

class ElectronicComponent(models.Model):
    '''
    Electronic Components Products
    '''
    p_name = models.CharField(_('product name'),max_length=200,
            help_text=_("Example:可调式电容"))
    partno = models.CharField(_('part number'),max_length=200, 
            help_text=_("Alphanumeric characters only (letters, digits and underscores)"))
    dc = models.CharField(_('date code'),max_length=10,default=' ',  
            help_text=_("digits and '+','-','/'only "))

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值