def get(self):
args = self.parser.parse_args()
query = args["query"]
maxResults = args["maxResults"]
if query == None:
return jsonify({"results": {}})
searchResults = {}
isDone = False
for collectionAttrs in SEARCHABLE_COLLECTION_ATTRIBUTES:
if isDone: break
collectionResults = []
collection = db[collectionAttrs["collectionName"]]
collection.create_index([("$**", TEXT)])
rawCollectionResults = collection.find({"$text": {"$search": query}})
for res in rawCollectionResults:
if len(searchResults) >= maxResults:
isDone = True
break
collectionResults.append({"title": res[collectionAttrs['nameField']], "url": collectionAttrs['linkLead']+str(res["_id"])})
if len(collectionResults) > 0:
searchResults[collectionAttrs["collectionName"]] = {"name": collectionAttrs["categoryName"], "results": collectionResults}
return jsonify({"results": searchResults})
评论列表
文章目录