Metadata-Version: 1.1
Name: zapian
Version: 0.1.8dev
Summary: indexer addons: sort, cjksplitter, and so on
Home-page: http://epk.zopen.cn/pypi/zapian
Author: Pan Junyong
Author-email: dev@zopen.cn
License: Private
Description: zapian: schemaless python interface to Xapian
        ===============================================
        
        作为一个pythoner，我们有理由爱xapian... 
        
        但xappy已年久失修过于陈旧了... 喜欢elasticsearch的api，但是憎恨Luence的java架构，不愿引入新的服务进程？
        
        那么zapian，可能是你需要的....
        
        欢迎拍砖： http://weibo.com/panjunyong
        
        特性
        -------------------------------------
        
        - 为xapian提供更友好的schemaless的api
        - 支持分区索引：可单独指定分区搜索，或合并搜索
        
          - 历史数据存放在不同的索引分区
          - 根据数据存放区域进行分区
        
        Schemaless API
        -------------------------------------
        
        首先需要初始化数据库:
        
              db = Zapian(path='/tmp/test_zapian_db')
        
        添加一个分区：
        
              db.add_part('2001-02')
        
        添加索引:
        
              db.add_document(part='2001-02', 
                              uid='1111', 
                              index = { '+title' : u'我们很好.doc', 
        		                'searchable_text' : u'', 
                                        'modified' : datetime.datetime(), 
                                        'crated' : datetime.datetime()
                                    },
                               data = {}
                              )
        
        修改索引:
        
              db.replace_document(part, uid, doc)
        
        删除索引:
        
              db.delete_document(part, uid)
        
        搜索：
        
              db.search(parts, ["and",
                                   { "filters":
                                      "exclude":
                                   },
        
                                   [ "or",
                                      {"filters":
                                       "exclude": },
                                      { "filters":
                                        "exclude": }
                                   ]
                               ]
                           )
        
        
        doc和索引的关系
        -------------------------------------
        
        xapian内部对数据有三种用途：term索引、排序字段、返回data；系统自动对数据类型进行处理：
        
        - set/list/tuple：对每个包含数据，完整匹配搜索(term索引)
        - string/unicode: 用于全文搜索(term索引)
        - datetime/int/float: 用于排序和范围比较(排序字段)
        - 如果字符串类型的字段以 + 开头，表示除了全文索引，也会用于排序
        
        数据库的结构
        -------------------------------------
        
        数据库存放在文件夹结构：
        
                  schema.yaml   # 库结构信息
                  20120112/     # 某个分区，标准xapian数据库
                  20120512/     # 另外一个分区，标准xapian数据库
        
        其中schema.json, 由系统自动维护, 记录了2个信息：
        
        1. PREFIX和字段的映射： 
        
              prefixes:{title':"NC", 'created':"LL"}
              
        2. attribute存放的slot位置: 
        
              slots:{'modified':1, 'created':2}
              
        安装使用
        -------------------------------------
        
        1. 需要先安装xapian：http://xapian.org/download
        2. 直接在pypi上安装这个包： https://pypi.python.org/pypi/zapian
        
Keywords: zope3 z3c rpc  server client
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Framework :: Zope3
