所以基本上我试图分析仪添加到我的草堆后端Elasticsearch和到目前为止,我还没有运气。Django的草堆+ ElasticSearch仪
我想查询像这样3/09.0TBOBR.C1
,我也得到很多的错误。有人告诉我分析是解决我的问题,所以我尝试使用keyword
分析
我想是这样的:
class ConfigurableElasticBackend(ElasticsearchSearchBackend):
DEFAULT_ANALYZER = "keyword"
,我也试过这样在我的设置文件:
ELASTICSEARCH_DEFAULT_ANALYZER = "keyword"
我做了重建索引更改后
我的错误消息是:
Failed to query Elasticsearch using '(3/09.0TBOBR.C1)':
Non-OK response returned (400):
u'SearchPhaseExecutionException[Failed to execute phase [query], all shards failed;
shardFailures {[oh93DYn1QTyVWmAnDMyKdQ][haystack][4]:
SearchParseException[[haystack][4]: from[-1],size[-1]:
Parse Failure [Failed to parse source [{
"sort": [{
"score": {"order": "asc", "ignore_unmapped": true, "missing": "_last"}
}],
"query": {"filtered": {"filter": {"fquery": {"query": {"query_string": {"query": "django_ct:(caselaw.process)"}}, "_cache": true}}, "query": {"query_string": {"query": "(3/09.0TBOBR.C1)", "default_operator": "AND", "default_field": "text", "auto_generate_phrase_queries": true, "analyze_wildcard": true}}}
}, "from": 0, "size": 20}]]];
nested:
QueryParsingException[[haystack]
Failed to parse query [(3/09.0TBOBR.C1)]];
nested:
ParseException[Cannot parse \'(3/09.0TBOBR.C1)\':
Lexical error at line 1, column 17.
Encountered: <EOF> after : "/09.0TBOBR.C1)"];
nested:
TokenMgrError[Lexical error at line 1, column 17.
Encountered: <EOF> after : "/09.0TBOBR.C1)"]; }{[oh93DYn1QTyVWmAnDMyKdQ][haystack][0]:
SearchParseException[[haystack][0]: from[-1],size[-1]:
Parse Failure [Failed to parse source [{"sort": [{"score": {"order": "asc", "ignore_unmapped": true, "missing": "_last"}}], "query": {"filtered": {"filter": {"fquery": {"query": {"query_string": {"query": "django_ct:(caselaw.process)"}}, "_cache": true}}, "query": {"query_string": {"query": "(3/09.0TBOBR.C1)", "default_operator": "AND", "default_field": "text", "auto_generate_phrase_queries": true, "analyze_wildcard": true}}}}, "from": 0, "size": 20}]]];
nested:
QueryParsingException[[haystack] Failed to parse query [(3/09.0TBOBR.C1)]];
nested:
ParseException[Cannot parse \'(3/09.0TBOBR.C1)\':
Lexical error at line 1, column 17. Encountered: <EOF> after : "/09.0TBOBR.C1)"];
nested:
TokenMgrError[Lexical error at line 1, column 17. Encountered: <EOF> after : "/09.0TBOBR.C1)"]; }{[oh93DYn1QTyVWmAnDMyKdQ][haystack][1]: SearchParseException[[haystack][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"sort": [{"score": {"order": "asc", "ignore_unmapped": true, "missing": "_last"}}], "query": {"filtered": {"filter": {"fquery": {"query": {"query_string": {"query": "django_ct:(caselaw.process)"}}, "_cache": true}}, "query": {"query_string": {"query": "(3/09.0TBOBR.C1)", "default_operator": "AND", "default_field": "text", "auto_generate_phrase_queries": true, "analyze_wildcard": true}}}}, "from": 0, "size": 20}]]]; nested: QueryParsingException[[haystack] Failed to parse query [(3/09.0TBOBR.C1)]]; nested: ParseException[Cannot parse \'(3/09.0TBOBR.C1)\': Lexical error at line 1, column 17. Encountered: <EOF> after : "/09.0TBOBR.C1)"]; nested: TokenMgrError[Lexical error at line 1, column 17. Encountered: <EOF> after : "/09.0TBOBR.C1)"]; }{[oh93DYn1QTyVWmAnDMyKdQ][haystack][2]: SearchParseException[[haystack][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"sort": [{"score": {"order": "asc", "ignore_unmapped": true, "missing": "_last"}}], "query": {"filtered": {"filter": {"fquery": {"query": {"query_string": {"query": "django_ct:(caselaw.process)"}}, "_cache": true}}, "query": {"query_string": {"query": "(3/09.0TBOBR.C1)", "default_operator": "AND", "default_field": "text", "auto_generate_phrase_queries": true, "analyze_wildcard": true}}}}, "from": 0, "size": 20}]]]; nested: QueryParsingException[[haystack] Failed to parse query [(3/09.0TBOBR.C1)]]; nested: ParseException[Cannot parse \'(3/09.0TBOBR.C1)\': Lexical error at line 1, column 17. Encountered: <EOF> after : "/09.0TBOBR.C1)"]; nested: TokenMgrError[Lexical error at line 1, column 17. Encountered: <EOF> after : "/09.0TBOBR.C1)"]; }{[oh93DYn1QTyVWmAnDMyKdQ][haystack][3]: SearchParseException[[haystack][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"sort": [{"score": {"order": "asc", "ignore_unmapped": true, "missing": "_last"}}], "query": {"filtered": {"filter": {"fquery": {"query": {"query_string": {"query": "django_ct:(caselaw.process)"}}, "_cache": true}}, "query": {"query_string": {"query": "(3/09.0TBOBR.C1)", "default_operator": "AND", "default_field": "text", "auto_generate_phrase_queries": true, "analyze_wildcard": true}}}}, "from": 0, "size": 20}]]]; nested: QueryParsingException[[haystack] Failed to parse query [(3/09.0TBOBR.C1)]]; nested: ParseException[Cannot parse \'(3/09.0TBOBR.C1)\': Lexical error at line 1, column 17. Encountered: <EOF> after : "/09.0TBOBR.C1)"]; nested: TokenMgrError[Lexical error at line 1, column 17. Encountered: <EOF> after : "/09.0TBOBR.C1)"]; }]'
我到底做错了什么?感谢
可以肯定的是:在更改分析仪之后,应该在任何可见变化之前重新索引对象。是你做的吗? – Bjorn 2014-09-28 19:55:21
哦不,我没有...现在试试 – psychok7 2014-09-28 19:59:24
@Bjorn应该在我的设置文件中使用像这样ELASTICSEARCH_DEFAULT_ANALYZER =“keyword”? – psychok7 2014-09-28 20:01:48