このsolr utilメソッド、つまりSolrUtils::escapeQueryChars()を使用できるプログラミングの実際のシナリオが必要です。
現在、solrのクエリからクエリ文字をエスケープするために使用しています。
q:+人気:[10 TO *] +section:0
そして、私は使用しています
escapeQueryChars(+人気:[10 TO *] +セクション:0)
しかし、エスケープ後に結果を取得できません。
SolrUtils :: escapeQueryCharsは通常、Solrで特別な意味を持つクエリ内の文字をエスケープするために使用されます。
現在の文字のリストは+ - && || ! ( ) { } [ ] ^ " ~ * ? : \
Solrで特別な意味を持っており、エスケープしないと動作が異なります。
たとえば、5*
エスケープしない限り検索している場合は、ワイルドカード検索として動作し、から始まるトークンで結果を返します5
。
クエリ値でのみ使用されます。
ほとんどの場合、ユーザーからのクエリを受け付けます。したがって、例外を回避するためにこれらの文字をエスケープすることが不可欠です
ユーザー検索クエリは次のようになります: 「Thomas' Calculus (12th Edition)」
$query = new SolrQuery('product_name:'.SolrUtils::escapeQueryChars($userQuery));