2011-06-30 37 views
0

解決在[question]中描述的問題:Solr: where to store additional information? 我寫了一個函數termcnt(fieldname),它只是計算關於指定字段名的文檔中的特定術語。
中的 「Solr/Lucene的聲明」 使用Solr管理頁面(http://localhost:8080/admin/form.jsp)我問:solr:函數使用問題

fq={!frange l=3 u=1000}termcnt(wc_text) 

,並得到了一個錯誤:

type Status report 
message org.apache.lucene.queryParser.ParseException: Cannot parse 'fq={!frange l=3 u=1000}termcnt(wc_text)': Encountered " <RANGEEX_GOOP> "u=1000 "" at line 1, column 16. Was expecting: "}" ... 
description The request sent by the client was syntactically incorrect (org.apache.lucene.queryParser.ParseException: Cannot parse 'fq={!frange l=3 u=1000}termcnt(wc_text)': Encountered " <RANGEEX_GOOP> "u=1000 "" at line 1, column 16. Was expecting: "}" ...). 

哪裏是我的錯?

謝謝

附:當我queering:

_val_:"termcnt(wc_text)" 

我的功能是否正常工作......

PPS甚至和FUNC我有同樣的結果:(

fq={!frange l=3 u=1000}sum(2,3) 

的Solr 3.2.0
lucene的3.2.0
(來自行家庫)

堆棧跟蹤(的要求):

1 jul 2011 9:33:39 org.apache.solr.common.SolrException log 
SEVERE: org.apache.solr.common.SolrException: org.apache.lucene.queryParser.ParseException: Cannot parse 'fq={!frange l=3 u=100000}termcnt(wc_text)': Encountered " <RANGEEX_GOOP> "u=100000 "" at line 1, column 16. 
Was expecting: 
"}" ... 

at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:108) 
at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:173) 
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) 
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1360) 
at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356) 
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403) 
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:286) 
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:272) 
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1730) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
at java.lang.Thread.run(Thread.java:662) 
Caused by: org.apache.lucene.queryParser.ParseException: Cannot parse 'fq={!frange l=3 u=100000}termcnt(wc_text)': Encountered " <RANGEEX_GOOP> "u=100000 "" at line 1, column 16. 
Was expecting: 
"}" ... 

at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:211) 
at org.apache.solr.search.LuceneQParser.parse(LuceneQParserPlugin.java:80) 
at org.apache.solr.search.QParser.getQuery(QParser.java:142) 
at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:84) 
... 21 more 
Caused by: org.apache.lucene.queryParser.ParseException: Encountered " <RANGEEX_GOOP> "u=100000 "" at line 1, column 16. 
Was expecting: 
"}" ... 

at org.apache.lucene.queryParser.QueryParser.generateParseException(QueryParser.java:1818) 
at org.apache.lucene.queryParser.QueryParser.jj_consume_token(QueryParser.java:1700) 
at org.apache.lucene.queryParser.QueryParser.Term(QueryParser.java:1510) 
at org.apache.lucene.queryParser.QueryParser.Clause(QueryParser.java:1309) 
at org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:1266) 
at org.apache.lucene.queryParser.QueryParser.TopLevelQuery(QueryParser.java:1226) 
at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:206) 
... 24 more 

1 jul 2011 9:33:39 org.apache.solr.core.SolrCore execute 
INFO: [] webapp= path=/select params={explainOther=&fl=&indent=on&start=0&q=fq%3D{!frange+l%3D3+u%3D100000}termcnt(wc_text)&hl.fl=&qt=&wt=&fq=&rows=10&version=2.2} status=400 QTime=21 
+0

在詢問QueryParser異常時,提供堆棧跟蹤非常有用。 – fyr

+0

@fyr已添加到訊息 – denys

+0

我面臨同樣的問題,你能解決這個問題嗎? – sesmic

回答

0

我相信接口已經有所改變,因爲這是寫 - 但查詢

fq={!frange l=3 u=1000}sum(2,3) 

似乎是正確寫入。您可以嘗試URL編碼它,就像

fq=%7B!frange+l%3D3+u%3D1000%7Dsum(2%2C3) 

但我有一種感覺,這個問題只是從Solr中的較新版本和管理面板解決。