我正在尝试为 Bluemix Retrieve and Rank 服务中的一些网页编制索引。所以我确实用 nutch 1.11 抓取了我的种子,将抓取的数据(大约 9000 个 URL)转储为文件,将那些可能的数据(例如 xml 文件)发布到我的收藏中:
Post_url = '"https://gateway.watsonplatform.net/retrieve-and-rank/api/v1/solr_clusters/%s/solr/%s/update"' %(solr_cluster_id, solr_collection_name)
cmd ='''curl -X POST -H %s -u %s %s --data-binary @%s''' %(Cont_type_xml, solr_credentials, Post_url, myfilename)
subprocess.call(cmd,shell=True)
并使用 Bluemix Doc-Conv 服务将其余部分转换为 json:
doc_conv_url = '"https://gateway.watsonplatform.net/document-conversion/api/v1/convert_document?version=2015-12-15"'
cmd ='''curl -X POST -u %s -F config="{\\"conversion_target\\":\\"answer_units\\"}" -F file=@%s %s''' %(doc_conv_credentials, myfilename, doc_conv_url)
process = subprocess.Popen(cmd, shell= True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
然后将这些 Json 结果保存在一个 json 文件中并将其发布到我的收藏中:
Post_converted_url = '"https://gateway.watsonplatform.net/retrieve-and-rank/api/v1/solr_clusters/%s/solr/%s/update/json/docs?commit=true&split=/answer_units/id&f=id:/answer_units/id&f=title:/answer_units/title&f=body:/answer_units/content/text"' %(solr_cluster_id, solr_collection_name)
cmd ='''curl -X POST -H %s -u %s %s --data-binary @%s''' %(Cont_type_json, solr_credentials, Post_converted_url, Path_jsonFile)
subprocess.call(cmd,shell=True)
一切听起来都很好。json 文件应该是这样,当我发布数据时,我确实收到了状态 0,我认为这意味着发布是正确的。但是当我发送查询时:
pysolr_client = retrieve_and_rank.get_pysolr_client(solr_cluster_id, solr_collection_name)
results = pysolr_client.search(Query_term)
print(results.docs)
结果什么都没有。它什么也没找到。我以前做过同样的事情,使用相同的命令结构和所有内容,并且它有效。我刚刚制作了一个新系列,现在它不起作用。
我的数据是否已编入索引?那么为什么查询不起作用?当我尝试获取 Solr 集群的使用统计信息时,结果是:
{"disk_usage":{"used_bytes":2210,"total_bytes":34359738368,"used":"2.1582 KB","total":"32 GB","percent_used":6.4319465309381485E-6},
"memory_usage":{"used_bytes":2069028864,"total_bytes":4194304000,"used":"1.9269 GB","total":"3.9063 GB","percent_used":49.3294921875}}
我认为这意味着我的数据已被索引并存储在我的集群中。刚才我意识到,每次我发布我的数据时,数据使用量和内存使用量都不会改变。这是否意味着发布未完成?即使我收到状态 0?如果是的话,有什么想法是什么问题?为什么会这样?
它与 solr_config 有什么关系吗?
任何有关如何从查询中获取结果的帮助或想法将不胜感激。