从Solr中获取数据并将其加载到Python Dataframe中

9udxz4iz  于 2022-11-05  发布在  Solr
关注(0)|答案(2)|浏览(220)

我已经从Oracle 11 g中提取了大约50 k行到Solr。
现在我想从Solr获取相同的数据到python Dataframe。
我使用了以下内容:

import pandas as pd
import pysolr

r = pysolr.Solr('http://localhost:8983/solr/db')

result = r.search('*')  

docs = pd.DataFrame(result.docs)

结果= r.search('*')#它抛出错误为SolrError:Solr响应错误(HTTP 504):[原因:无] 504网关超时

网关超时

服务器错误-服务器127.0.0.1目前无法联机。
请重试请求或与管理员联系。
我是新来的Solr.提前感谢

dy2hfwbg

dy2hfwbg1#

您会得到pysolr.Results类型的结果
使用函数获取所需的内容,如qtime、docs、facet
results.docs给予列表中的所有文档,可以使用type(results.docs)进行检查
results.docs[0]会提供结果中的第一个文件,其类型为dict
要将其导入DataFrame导入Pandas库并使用DataFrame()

import pandas as pd
import pysolr
solrcon = pysolr.Solr('http://localhost:8983/solr/db', timeout=10)
results = solrcon.search('*:*')
docs = pd.DataFrame(results.docs)
rhfm7lfc

rhfm7lfc2#

这有助于

import pandas as pd
import time
from requests.utils import requote_uri
start_num =0
rows_num = 50000
total_docs =7591467
df = pd.DataFrame()
while total_docs> start_num :
    print('start row is',start_num)
    print('row number is ', rows_num)
    time.sleep(2.4)
    url = "localhost:8080/solr/collection_name/select?q=*:*&sort=xyz desc&wt=csv&start={}&rows={}".format(start_num,rows_num)
    encoded_URL = requote_uri(url)
    print(encoded_URL)
    df2 = pd.read_csv(encoded_URL) 
    df = df.append(df2, ignore_index=True)
    start_num = start_num+ 50000

相关问题