本文整理汇总了Python中pyes.ES.count方法的典型用法代码示例。如果您正苦于以下问题:Python ES.count方法的具体用法?Python ES.count怎么用?Python ES.count使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyes.ES
的用法示例。
在下文中一共展示了ES.count方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _calculate_geo
# 需要导入模块: from pyes import ES [as 别名]
# 或者: from pyes.ES import count [as 别名]
def _calculate_geo(self, request):
cities = cache.get("website.cities")
if not cities:
elastic = ES(settings.SEARCH_HOSTS)
geo = []
for city, location in settings.APP_GEO_CITIES.items():
filters = [
QueryFilter(
StringQuery(city, search_fields=["city"], analyze_wildcard=True, default_operator="AND")
),
GeoDistanceFilter(
"pin.location", {"lat": location[0], "lon": location[1]}, settings.APP_GEO_CITIES_RANGE
),
]
geo.append(
(
city,
elastic.count(FilteredQuery(MatchAllQuery(), ORFilter(filters)), settings.SEARCH_ALIASES)[
"count"
],
{"lat": location[0], "lon": location[1]},
)
)
elastic.connection.close()
data = []
start_radius, max_radius = (5000, 10000) # 16km radius
quotient = None
for city in sorted(geo, key=lambda student: student[1], reverse=True):
if city[1] > 0:
if not quotient:
quotient = int(max_radius / city[1])
radius = city[1] * quotient + start_radius
data.append((radius,) + city)
cities = data
cache.set("website.cities", cities)
return cities
示例2: search_people_by_bio
# 需要导入模块: from pyes import ES [as 别名]
# 或者: from pyes.ES import count [as 别名]
def search_people_by_bio(query, limit_results=DEFAULT_LIMIT,
index=['onename_people_index']):
""" queries lucene index to find a nearest match, output is profile username
"""
from pyes import QueryStringQuery, ES
conn = ES()
q = QueryStringQuery(query,
search_fields=['username', 'profile_bio'],
default_operator='and')
results = conn.search(query=q, size=20, indices=index)
count = conn.count(query=q)
count = count.count
# having 'or' gives more results but results quality goes down
if(count == 0):
q = QueryStringQuery(query,
search_fields=['username', 'profile_bio'],
default_operator='or')
results = conn.search(query=q, size=20, indices=index)
results_list = []
counter = 0
for profile in results:
username = profile['username']
results_list.append(username)
counter += 1
if(counter == limit_results):
break
return results_list