本文整理汇总了Python中com.googlecode.fascinator.api.indexer.SearchRequest.removeParam方法的典型用法代码示例。如果您正苦于以下问题:Python SearchRequest.removeParam方法的具体用法?Python SearchRequest.removeParam怎么用?Python SearchRequest.removeParam使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.googlecode.fascinator.api.indexer.SearchRequest
的用法示例。
在下文中一共展示了SearchRequest.removeParam方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __search
# 需要导入模块: from com.googlecode.fascinator.api.indexer import SearchRequest [as 别名]
# 或者: from com.googlecode.fascinator.api.indexer.SearchRequest import removeParam [as 别名]
def __search(self):
requireEscape = False
recordsPerPage = self.__portal.recordsPerPage
uri = URLDecoder.decode(self.request.getAttribute("RequestURI"))
query = None
pagePath = self.__portal.getName() + "/" + self.pageName
if query is None or query == "":
query = self.formData.get("query")
requireEscape = True
if query is None or query == "":
query = "*:*"
if query == "*:*":
self.__query = ""
else:
self.__query = query
if requireEscape:
query = self.__escapeQuery(query)
query = "%s:%s" % (self.__searchField, query)
self.sessionState.set("query", self.__query)
# find objects with annotations matching the query
if query != "*:*":
anotarQuery = self.__query
if requireEscape:
anotarQuery = self.__escapeQuery(anotarQuery)
annoReq = SearchRequest(anotarQuery)
annoReq.setParam("facet", "false")
annoReq.setParam("rows", str(99999))
annoReq.setParam("sort", "dateCreated asc")
annoReq.setParam("start", str(0))
anotarOut = ByteArrayOutputStream()
self.services.indexer.annotateSearch(annoReq, anotarOut)
resultForAnotar = SolrResult(ByteArrayInputStream(anotarOut.toByteArray()))
resultForAnotar = resultForAnotar.getResults()
ids = HashSet()
for annoDoc in resultForAnotar:
annotatesUri = annoDoc.getFirst("annotatesUri")
ids.add(annotatesUri)
self.log.debug("Found annotation for %s" % annotatesUri)
# add annotation ids to query
query += ' OR id:("' + '" OR "'.join(ids) + '")'
portalSearchQuery = self.__portal.searchQuery
if portalSearchQuery == "":
portalSearchQuery = query
else:
if query != "*:*":
query += " AND " + portalSearchQuery
else:
query = portalSearchQuery
req = SearchRequest(query)
req.setParam("facet", "true")
req.setParam("rows", str(recordsPerPage))
req.setParam("facet.field", self.__portal.facetFieldList)
req.setParam("facet.sort", Boolean.toString(self.__portal.getFacetSort()))
req.setParam("facet.limit", str(self.__portal.facetCount))
req.setParam("sort", self.__sortBy)
# setup facets
if self.__useSessionNavigation:
action = self.formData.get("verb")
value = self.formData.get("value")
fq = self.sessionState.get("fq")
if fq is not None:
self.__pageNum = 1
req.setParam("fq", fq)
if action == "add_fq":
self.__pageNum = 1
req.addParam("fq", URLDecoder.decode(value, "UTF-8"))
elif action == "remove_fq":
self.__pageNum = 1
req.removeParam("fq", URLDecoder.decode(value, "UTF-8"))
elif action == "clear_fq":
self.__pageNum = 1
req.removeParam("fq")
elif action == "select-page":
self.__pageNum = int(value)
else:
navUri = uri[len(pagePath):]
self.__pageNum, fq, self.__fqParts = self.__parseUri(navUri)
savedfq = self.sessionState.get("savedfq")
limits = []
if savedfq:
limits.extend(savedfq)
if fq:
limits.extend(fq)
self.sessionState.set("savedfq", limits)
for q in fq:
req.addParam("fq", URLDecoder.decode(q, "UTF-8"))
portalQuery = self.__portal.query
if portalQuery:
req.addParam("fq", portalQuery)
req.addParam("fq", 'item_type:"object"')
if req.getParams("fq"):
self.__selected = ArrayList(req.getParams("fq"))
if self.__useSessionNavigation:
#.........这里部分代码省略.........
示例2: __search
# 需要导入模块: from com.googlecode.fascinator.api.indexer import SearchRequest [as 别名]
# 或者: from com.googlecode.fascinator.api.indexer.SearchRequest import removeParam [as 别名]
def __search(self):
recordsPerPage = self.__portal.recordsPerPage
query = None
if query is None or query == "":
query = formData.get("query")
if query is None or query == "":
query = "*:*"
req = SearchRequest(query)
req.setParam("facet", "true")
req.setParam("rows", "1000")
req.setParam("facet.field", self.__portal.facetFieldList)
req.setParam("facet.sort", "true")
req.setParam("facet.limit", str(self.__portal.facetCount))
req.setParam("sort", "f_dc_title asc")
# setup facets
action = formData.get("verb")
value = formData.get("value")
fq = sessionState.get("fq")
if fq is not None:
self.__pageNum = 1
req.setParam("fq", fq)
if action == "add_fq":
self.__pageNum = 1
name = formData.get("name")
print " * add_fq: %s" % value
req.addParam("fq", URLDecoder.decode(value, "UTF-8"))
elif action == "remove_fq":
self.__pageNum = 1
req.removeParam("fq", URLDecoder.decode(value, "UTF-8"))
elif action == "clear_fq":
self.__pageNum = 1
req.removeParam("fq")
elif action == "select-page":
self.__pageNum = int(value)
req.addParam("fq", 'item_type:"object"')
portalQuery = self.__portal.query
print " * portalQuery=%s" % portalQuery
if portalQuery:
req.addParam("fq", portalQuery)
self.__selected = req.getParams("fq")
sessionState.set("fq", self.__selected)
sessionState.set("pageNum", self.__pageNum)
req.setParam("start", str((self.__pageNum - 1) * recordsPerPage))
print " * combined.py:", req.toString(), self.__pageNum
out = ByteArrayOutputStream()
Services.indexer.search(req, out)
self.__result = JsonConfigHelper(ByteArrayInputStream(out.toByteArray()))
if self.__result is not None:
self.__paging = Pagination(self.__pageNum,
int(self.__result.get("response/numFound")),
self.__portal.recordsPerPage)
print " * combined.py: updating manifest..."
portal = self.getPortal()
manifest = portal.getJsonMap("manifest")
#add new items from search
for doc in self.__result.getList("response/docs"):
hashId = md5.new(doc.get("id")).hexdigest()
node = portal.get("manifest//node-%s" % hashId)
print " ********node=", node
if node is None:
portal.set("manifest/node-%s/title" % hashId, doc.get("dc_title").get(0))
portal.set("manifest/node-%s/id" % hashId, doc.get("id"))
#remove manifest items missing from search result
print manifest
for key in manifest.keySet():
item = manifest.get(key)
id = item.get("id")
doc = self.__result.getList('response/docs[@id="%s"]' % id)
if len(doc) == 0:
portal.removePath("manifest//%s" % key)
Services.getPortalManager().save(portal)