最近、Jackrabbit(1.6.2) で動作するアプリケーションに Lucene(2.4.1) のサポートを追加しました。jackrabbit チュートリアルで説明されているように、すべて実行しました。そして、すべてがほぼ正常に動作します。しかし、奇妙な動作に気付き、それに関するドキュメントが見つかりません。私はそれについてあなたに尋ねることにしました。
例: jcr:data プロパティの Node(jcr:content) に次のテキストがあります。
The quick brown fox jumps over the lazy dog
!@#$%^&
travmik!
tra!vmik
私のXPathクエリは次のとおりです。
String query = "root/element(*,my:documentBody)
[jcr:contains(*/*/element(*),'*" + param +"*')]";
それから私は検索しようとします:
「q」、「qu」、「qui」、「quic」、「quick」、「k」、「ck」、「ick」、「uick」、「quick brown fox」、「quick fox」、「tra」 、「travmik」、「mik」 - すべて問題なし
"tra!vmik"、"travmik!"、"!@#$" - なし
そして、はい、すべての特殊文字をthisからエスケープしました。
私は何を間違えましたか?
Ps もう 1 つ質問があります。Lucene のドキュメントでは、「検索の最初の文字として * または ? 記号を使用することはできません」と書かれていますが、私は使用して動作します。なんで?