solr:函数使用问题

发布于 2024-11-18 06:39:51 字数 8 浏览 2 评论 0原文

continue

to solve a problem described at [question]: Solr: where to store additional information?
i wrote a function termcnt(fieldname) which just count specific terms in document regarding specified fieldname.
Using solr admin page (http://localhost:8080/admin/form.jsp) in "Solr/Lucene Statement" I queried:

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

and got an error:

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: "}" ... ).

where is my mistake?

thank you

P.S. when I'm queering:

_val_:"termcnt(wc_text)"

my function is working properly...

P.P.S even with sum func i have the same results :(

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

solr 3.2.0
lucene 3.2.0
(from maven repository)

stack trace (as requested):

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 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忘年祭陌 2024-11-25 06:39:51

我相信自从编写此内容以来界面已经发生了一些变化 - 但您的查询

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

似乎编写正确。您可能会尝试对其进行 url 编码,例如

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

但我有一种感觉,这个问题仅通过较新版本的 Solr 和管理面板即可解决。

I believe the interface has changed somewhat since this was written--but your query

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

seems to be written correctly. You might try to url encode it, like

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

But I have a feeling this issue is solved just from newer versions of Solr and the admin panel.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文