自然言語のクエリをRetrieve and Rank(Solr)に送信すると、クエリにコロンが含まれているとエラーが返されます。コロンの直前の単語をフィールド名として解釈しようとしているようです。RetrieveおよびRank Solrクエリでコロンを使用できないのはなぜですか?
これを防止する方法はありますか?このような他の文字がありますか?
自然言語のクエリをRetrieve and Rank(Solr)に送信すると、クエリにコロンが含まれているとエラーが返されます。コロンの直前の単語をフィールド名として解釈しようとしているようです。RetrieveおよびRank Solrクエリでコロンを使用できないのはなぜですか?
これを防止する方法はありますか?このような他の文字がありますか?
処理する必要がある文字のリストはhttp://www.ibm.com/watson/developercloud/doc/retrieve-rank/plugin_query_syntax.shtmlです。ページの下部にある「予約文字」という見出しの下にあります。 (これはまた、それらを処理する方法を含んでいる)
これらを含める:
は、コロン(:)
は、バックスラッシュを使用してクエリでコロンをエスケープ 。二重引用符( ")フィールドのクエリにバックスラッシュを使用してクエリで
エスケープ二重引用符。バックスラッシュ(\)エスケープ文字
別でクエリ内のバックスラッシュをエスケープバックスラッシュ。
あなたのSolrライブラリが自動的にこれをやっていない場合は、コロンからエスケープする必要があります。エスケープすると他のほとんどのケースと同様に\
が使用されるため、foo\:bar
が動作するはずです。別のオプションは、値を引用符で囲むことです(field:"foo:bar"
)。