2024-09-26 18:07:09 发布
网友
我知道Pymongo支持多种语言的文本搜索功能,例如英语、法语、德语……,但它不适用于中文。在MongoDB 3.4+PyMongo3.4的环境下,有没有实现中文全文检索的有效途径?在
我认为pymongo免费版不支持中文全文搜索的主要原因是中文分词困难。我有一个间接的方法来处理Pymongo的中文全文搜索。在将语料库存储到MongoDB或从MongoDB中搜索句子之前,可以先完成分词。jieba模块是我强烈推荐的中文分词模块。有一个独立的简单例子,在某种程度上对我有用。 在
jieba
from pymongo import MongoClient from pymongo import TEXT import jieba client = MongoClient() dialogs = client['db']['dialogs_zh_fulltext'] d1 = { 'text_in': '你 早上 吃 的 什么 ?', 'text_out': '我 吃 的 鸡蛋', } d2 = { 'text_in': '你 今天 准备 去 哪 ?', 'text_out': '我 要 回家', } dialogs.insert_many([d1,d2]) dialogs.create_index([('text_in', TEXT)], default_language='en') keywords = ' '.join(jieba.lcut('你今天早上去哪了?')) print('keywords: {}'.format(keywords)) cursor = dialogs.find({'$text': {'$search':keywords}}, {'score':{'$meta':'textScore'}}) for x in cursor.sort([('score', {'$meta':'textScore'})]): print(x)
输出:
我认为pymongo免费版不支持中文全文搜索的主要原因是中文分词困难。我有一个间接的方法来处理Pymongo的中文全文搜索。在将语料库存储到MongoDB或从MongoDB中搜索句子之前,可以先完成分词。
jieba
模块是我强烈推荐的中文分词模块。有一个独立的简单例子,在某种程度上对我有用。 在输出:
^{pr2}$相关问题 更多 >
编程相关推荐