Lucene++ 3.0.3 を使用して元チームメイトのコードに取り組んでいます。
QueryParser が「特殊文字」を処理できないと主張するコメントがあり、これが処理された 1 つの方法は、「特殊文字」をスペースに置き換えることです。
if (((*pos) >= L'A' && (*pos) <= L'Z') ||
((*pos) >= L'a' && (*pos) <= L'z') ||
... ||
(*pos == L'-'))
{
// do nothing, these are OK
} else {
// remaining characters are []{}*
(*pos) = L' ';
}
StandardAnalyzer
使用されているアナライザーです。(ありがとうマーク)
「特殊文字」は、より適切な用語が必要なため、クエリまたはある種のワイルドカード処理を組み合わせるためのものだと思います。
クエリ文字列内のこれらの文字を説明できるより良い関数はありますか?