用于与谷歌搜索设备通信的客户端。

canonicalwebteam.gsa的Python项目详细描述


canonicalwebteam.gsa:python gsa客户端图片::https://travis-ci.org/canonicalwebteam/gsa.svg?branch=master
:a lt:build status
:target:https://travis ci.org/canonicalweeam/gsa

一个"google search appliance"的客户端库lt;https://enterprise.google.com/search/products/gsa.html>;`,使在python中检索搜索结果更容易。

/>——————————————————————————————————————————————————————————————————————————————————您只需使用以下命令即可安装它:

…代码::bash

pip安装canonicalwebteam.gsa

——


这是查询谷歌搜索设备的基本客户端。

代码::python

search_client=gsaclient(base_url="http://gsa.example.com/search")


first_ten_results=search_client.search("hello world")


arch(
"Hello World",start=20,num=20


/72/gsa_u doc戋set/xml戋reference/request戋format.html戋1076971>;`(默认值:0)和
`num<;https://www.google.com/support/enterprise/static/gsa/docs/admin/72/gsa戋u doc戋set/xml戋reference/request戋format.html戋1076882>;`(默认值:10)和
`lr<;https://www.google.com/support/enterprise/static/gsa/docs/admin/72/gsa_Doc_Set/xml_Reference/request_Format.html 1076879>;`(默认值:'')参数。
没有其他"搜索参数"<;https://w w w.google.com/support/enterprise/static/gsa/docs/admin/72/gsa_Doc_Set/xml_Reference/request_Format.html 1086546>;`,
返回的result s对象将尝试将每个gsa的
`标准结果xml标记<;https://www.google.com/support/enterprise/static/gsa/docs/admin/70/gsa-doc-set/xml-reference/results-format.html 1078461>;`
格式:

…代码::python

{
"Estimated_Total_Results":int,35;"m":GSA的估计,请参见下面的
"文档过滤":bool,"fi":是否启用过滤?
"下一个URL":str,"nu":用于查询下一组结果的GSA URL,如果可用
"上一个URL":str,"pu":与前一组结果的
"items"相同:[
{
"index":int,"r[n]:所有结果索引中此结果的数目
"url":str,"u":结果页的url
"encoded_url":str,"ue":上面的url,encoded
"title":str,"t":页标题
"re相关度:int,"rk":这个结果与查询有多相关?从0到10
"设备ID":str,"ent_source":gsa的序列号
"summary":str,"s":此结果的摘要文本
"language":str,"lang":页的语言
"details":{}#"fs":name:任何额外信息的值对
"link_supported":bool,"l":"link:"支持特殊查询词,
"cache":{"c":字典,如果cache不可用则为"none"
"size":str,"c"[sz]":缓存页的可读大小
‘缓存ID’:str,""c[c id]":GSA缓存中文档的ID
‘编码’:str"c[enc]:缓存页的文本编码
}
}、

]
}



a
`特定语言<;https://www.google.com/support/enterprise/static/gsa/docs/admin/72/gsa_doc_set/xml_reference/request_format.html 1077439>;`.

代码::python

english_results=search_client.search("hello world",language="lang_en")
non_english_results=search_client.search("hello world",language="-lang_en")
domain_specific_results=search_client.search(
"hello world",
domains=["site1.example.com","site2.example.com"]


*nb:*如果未找到具有指定"language"的搜索结果,则gsa将返回它在所有语言中找到的任何结果。


ogle search appliance将返回一个"估计值",即每个查询的结果总数
,但是这个估计值通常非常不准确,有时超过10倍!即使启用了
`rc<;https://www.google.com/support/enterprise/static/gsa/docs/admin/72/gsa-doc-set/xml-reference/request-format.html 1076946>;`


这通常会导致gsa返回
结果的最后一页,这样我们就可以找到实际的结果总数。代码::python

total=search_client.total_results("hello world",domains=[],language='')

--



为了简化django的gsa client的使用,此模块中包含django view


usage
~d提供:code:`search_server_url`设置,告诉视图在哪里找到gsa:

代码::python

#可选:默认情况下,将结果限制为此语言

urls.py
from canonicalwebteam.gsa.views import searchview
urlpatterns+=[url(r'^search/?$',search view.as_view(template_name="search.html")]


然后可以查询此视图:

-:code:`example.com/search?q=my+search+term`
-:代码:`example.com/search?q=my+search+term&domain=example.com&domain=something.example.com`(覆盖:代码:`search\u domains`)
-:代码:`example.com/search?q=my+search+term&;language=-lang戋zh-cn`(排除中文结果,覆盖:代码:`search戋language`)

结构如下:

…code::python

{
"query":str,传递给视图的"q"参数值
"limit":int,"limit"参数值,或默认值10
"offset":int,"offset"参数值,或默认值0
"error":none str,none,或出现错误时的错误描述
"results":{
"items":[],从gsaclient返回的项列表(见上文)
"total":int,可用结果的确切总数
"开始:int,集合中第一个结果的索引
"结束":int,集合中最后一个结果的索引
"下一页偏移量":int none,下一页结果的偏移量,如果可用
"上一页偏移量":int none,上一页结果的偏移量,如果可用
"上一页偏移量":int,上一页结果的偏移量
"la"st_page":int,最终页码(从"limit"和"total"计算得出)
"current_page":int,当前页码(从"limit"和"end"计算得出)
"倒数第二页":int倒数第二页

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在扩展类中将Java重写为抽象的非抽象方法   java可滚动视图   java Android:隐藏操作栏,保持标签   java如何在Hibernate中使用@Qualifier   java如何在spring MVC中进行Http会话管理以获取数据库中的数据   java如何为TictaToe游戏创建HashMap   java在消息资源文件中查找未使用的值   从源代码构建Kafka时发生java错误   c中的java调用optaplanner DLL#   无法通过Java API访问orientdb函数   任务的java执行失败“:app:ProcessDebuggGoogleService”   java在整个模拟过程中保持代理之间的距离不变   如何在Java中使用BouncyCastle PGP实用程序实现增量加密?   java在安卓中计算画布点的距离   Java回文修订   java在Firebase数据库中存储变量的必要性   java如何使用gquery手势插件在页面上启用文本突出显示?   java如何在Apache camel中使用POST调用REST?