3

など、Solr で特定の句読点を検索するにはどうすればよい:)ですか? テキストを URL エンコードしようとしましたが、それでも次のメッセージが表示されます。

org.apache.solr.search.SyntaxError: Cannot parse ':': Encountered " ":" ": "" at line 1, column 0.
Was expecting one of:
<NOT> ...
"+" ...
"-" ...
<BAREOPER> ...
"(" ...
"*" ...
<QUOTED> ...
<TERM> ...
<PREFIXTERM> ...
<WILDTERM> ...
<REGEXPTERM> ...
"[" ...
"{" ...
<LPARAMS> ...
<NUMBER> ...
<TERM> ...
"*" ...

さらに、文字列フィールドではなく、テキスト フィールドに対してこの検索を実行する必要があります。句読点を保存するには、アナライザーをどのように構成すればよいですか?

「Smiley」という名前の 2 人の多作な Solr 貢献者のために、件名を Google で検索することは不可能であることに注意してください。

4

2 に答える 2

3

テキストフィールドにはどのような構成がありますか?
StandardTokenizerFactory または単語区切りフィルターを使用している場合など、句読点で分割が行われないように注意する必要があります。
WhitespaceTokenizerFactory または KeywordTokenizerFactory を使用してカスタム フィールドを定義し、さらに小文字などのフィルターを適用できます。

また、Solr/Lucene が + - などの操作に使用する文字がいくつかあります。( ) { } [ ] ^ " ~ * ? :
バックスラッシュで特殊文字をエスケープする必要があります。特殊文字のエスケープにチェックを入れます

于 2013-05-23T10:59:03.983 に答える
1

:) "\:\ )" を検索する代わりに、両方の文字 :,) は SOLR で特別な意味を持ちます。'\' char を前に付けてエスケープする必要があるすべての特別な演算子について。

于 2013-05-23T12:52:14.270 に答える