私は、IDのリストを持っていると私はそれらのIDに基づいて文書を検索するとIdのフォーマットは、このようなものです -特定のIDによるsolrjで検索
id:<[email protected]>2016-04-22T21:12:30Z
私はコード -
を書きましたSolrQuery query = new SolrQuery();
query.setQuery("id:<[email protected]>2016-04-22T21:12:30Z");
query.setFields("id","from","subject");
QueryResponse response = server.query(query); // server is a CloudSolrServer object
SolrDocumentList results = response.getResults();
for(i=0;i<results.size();i++) {
system.out.println(results.get(i);
}
しかし、私はエラー
org.apache.solr.common.SolrException: org.apache.solr.search.SyntaxError: Cannot parse 'name:': Encountered "<EOF>" at line 1, column 5.
Was expecting one of:
<BAREOPER> ...
"(" ...
"*" ...
<QUOTED> ...
<TERM> ...
<PREFIXTERM> ...
<WILDTERM> ...
<REGEXPTERM> ...
"[" ...
"{" ...
<LPARAMS> ...
<NUMBER> ...
取得していますが、私はこの行のID値にエスケープ文字を追加しようとしました
query.setQuery("id:<[email protected]>2016-04-22T21:12:30Z");
しかし、誰も私が上の行をエスケープ文字を使って書くのを手伝ってもらえますか、それを達成するための他の方法を提案してください。
参考までにstackoverflowで1つのリンクが見つかりましたが、それは私を助けません。ここに貼り付けるリンクはありません。
Solrのバージョン:4.10.3
あなたはsolr admin ui ...を介して同じクエリを実行できますか?そこに結果を得ましたか?フィールドの種類は何ですか?あなたはschema.xmlを共有できますか? –