gpt4 book ai didi

python - Sphinx 搜索引擎和 Python API

转载 作者:太空狗 更新时间:2023-10-29 20:57:08 24 4
gpt4 key购买 nike

我正在尝试将 Sphinx 搜索引擎与他们的 Python API 结合使用。安装顺利。但是当我使用他们的 Python API 时,我没有得到完整的结果集。我只看身份证?但是当我在 ./bin 中使用他们的 ./search 二进制文件时,我得到了整个索引内容。

当使用cpp ./search binary -

./search test

1. document=1, weight=1, group_id=1, date_added=Sat Sep 11 07:42:38 2010, title=2
id=1
group_id=1
group_id2=5
date_added=2010-09-11 07:42:38
title=test one
content=this is my test document number one. also checking search within phrases.

但是当我使用 Python API 时,我得到 -

>>> import sphinxapi
>>> client = sphinxapi.SphinxClient()
>>> client.SetServer('127.0.0.1', 9312)
>>> client.Query('test')
{'status': 0, 'matches': [{'id': 1, 'weight': 1, 'attrs': {'date_added': 1284171158, 'group_id': 1, 'title': 2}}, {'id': 2, 'weight': 1, 'attrs': {'date_added': 1284171158, 'group_id': 1, 'title': 3}}, {'id': 4, 'weight': 1, 'attrs': {'date_added': 1284171158, 'group_id': 2, 'title': 1}}], 'fields': ['content'], 'time': '0.022', 'total_found': 3, 'warning': '', 'attrs': [['group_id', 1], ['date_added', 2], ['title', 3]], 'words': [{'docs': 6, 'hits': 6, 'word': 'test'}], 'error': '', 'total': 3}

如何将“标题”或“内容”等字符串字段作为结果集的一部分?

最佳答案

虽然可以做到,但我认为将“源”存储在 sphinx 中并不是一个好主意。 Sphinx 仅对于专用搜索引擎而言速度非常快(如果您需要,只为您提供 ID 和排名分数)。

顺便说一句,官方 SphinxSearch API 几乎没有更新,您实际上可以使用 MySQL 驱动程序/模块(例如 pymysql)。下面是一个例子:

import pymysql
db = pymysql.connect(host='127.0.0.1',port=9301,user='',passwd='',charset='utf8',db='')
cur = db.cursor()
qry='SELECT id,weight() FROM idx_name WHERE MATCH(\'"your Query"/1\') LIMIT 10 OPTION ranker=SPH04'
cur.execute(qry);row = cur.fetchall()
print(row)
cur.close();db.close()

关于python - Sphinx 搜索引擎和 Python API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3692468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com