我的PySolr代码在下面
filter_queries = []
facet_fields = []
for key, value in request.GET._iterlists():
if(key != 'Rows' and key != 'Sort' and key != 'Facet' and key != 'FacetFields' ):
filter_queries.append(key + ':' + request.GET[key])
else:
if(key == 'Rows'):
rows = request.GET['Rows']
if(key == 'Sort'):
sort = request.GET['Sort']
if(key == 'Facet'):
facet = request.GET['Facet']
if(key == 'FacetFields'):
facet_fields = request.GET['FacetFields'].split(",")
if(key == 'Start'):
start = request.GET['Start']
params = {
'fq': filter_queries,
'facet': facet,
'facet.field': facet_fields,
'rows': rows,
'sort': sort,
'start':start,
}
try:
results = solr.search(q='*', **params)
documents = json.dumps(results, default=lambda o: o.__dict__)
except Exception as e:
# handles SOLR invalid queries
documents = json.dumps({'error': 1, 'reason': str(e)})
return HttpResponse(documents)
当我传递?CityId = 3156
它工作正常,但现在我需要为CityId传递两个值(例如solr query url?q=CityId:3156+OR+CityId:2278
),如何在PySolr中实现这一点?在
您可以只编写查询
或者,您可以正常编写查询,在params中设置q.op参数
Im对请求使用AJAX,但是在Solr的所有api中语法都是相同的。如果要对单个字段进行多个查询,则应使用括号,如下所示:
这应该能解决问题。在
相关问题 更多 >
编程相关推荐