「a」はストップワードであり、StandardAnalyzer によってクエリから除外されます。ストップワードは、検索する言語で十分に一般的であり、検索結果を生成するのに意味があるとは見なされない単語です。短いリストですが、英語の「a」はそのうちの 1 つです。
アナライザーはその用語を削除し、存在する唯一の用語であるため、空のクエリを送信することになり、これは受け入れられず、検索は失敗します。
興味深いことに、これらは標準的な Lucene 英語のストップワードです。
"a", "an", "and", "are", "as", "at", "be", "but", "by",
"for", "if", "in", "into", "is", "it",
"no", "not", "of", "on", "or", "such",
"that", "the", "their", "then", "there", "these",
"they", "this", "to", "was", "will", "with"
ストップ ワードを削除したくない場合は、 を設定しAnalyzer
ないStopFilter
か、空のストップ ワード セットを設定する必要があります。の場合、カスタム ストップ セットをコンストラクターStandardAnalyzer
に渡すことができます。
Analyzer analyzer = new StandardAnalyzer(CharArraySet.EMPTY_SET);