【问题标题】:How do I search number fields in Google AppEngine with less than or equals?如何在 Google AppEngine 中搜索小于或等于的数字字段?
【发布时间】:2013-11-08 20:47:50
【问题描述】:

这些查询不起作用:

INFO: Searching with query:  year:(<=2008 OR  2011) 
INFO: Searching with query:  year:(<=2008)

代码

    log.info("Searching with query: " + q);
    try {
        Results<ScoredDocument> results = getIndex().search(q);

异常

INFO: Searching with query:  year:(<=2008 OR  2011) 
line 1:7 no viable alternative at input '<='
Nov 08, 2013 3:36:03 PM org.apache.struts2.dispatcher.Dispatcher error
SEVERE: Exception occurred during processing request: Unable to parse query:  year:(<=2008 OR  2011) 
com.google.appengine.api.search.SearchQueryException: Unable to parse query:  year:(<=2008 OR  2011) 
at com.google.appengine.api.search.checkers.QueryChecker.checkQueryParses(QueryChecker.java:44)
at com.google.appengine.api.search.checkers.QueryChecker.checkQuery(QueryChecker.java:28)
at com.google.appengine.api.search.Query$Builder.setQueryString(Query.java:91)
at com.google.appengine.api.search.Query$Builder.build(Query.java:107)
at com.google.appengine.api.search.IndexImpl.searchAsync(IndexImpl.java:378)
at com.google.appengine.api.search.IndexImpl.search(IndexImpl.java:479)

版本

appengine-api-1.0-sdk-1.8.6.jar

参考

https://developers.google.com/appengine/docs/java/search/query_strings

【问题讨论】:

  • &lt;=2008&lt;2009不一样吗?试试看。

标签: java google-app-engine google-search-api


【解决方案1】:

看起来语法错误。根据您提供的参考资料,因为

"weather=stormy" "weather: stormy" 等价,试试:

"year&lt;=2008 OR year=2011"

(假设这是您在示例中的意图)。

【讨论】:

  • "Color = (red OR blue)" You can use parentheses and the logical operator OR to specify a list of alternate field values.
  • 但是您在查询中同时使用:&lt;= 来表示year,这就像写year = &lt;= 2008
猜你喜欢
  • 1970-01-01
  • 2015-02-05
  • 2016-06-26
  • 2017-06-16
  • 1970-01-01
  • 2014-12-20
  • 2019-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多