SOLRでの検索に「text_general」fieldTypeを使用しています。特殊文字で検索すると、適切な結果が得られず、エラーが発生します。次のような特殊文字を使用したいと思います。
-
&
+
クエリ
solr?q=Healing - Live
solr?q=Healing & Live
エラーメッセージ
クライアントから送信された要求は構文的に正しくありませんでした (org.apache.lucene.queryParser.ParseException: 解析できません '("修復 \': 行 1、列 8 で字句エラーが発生しました: 後: "\"修復 \")。
schema.xml
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.ASCIIFoldingFilterFactory" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.ASCIIFoldingFilterFactory" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="title" type="text_general" indexed="true" stored="true" />
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
<defaultSearchField>text</defaultSearchField>
<copyField source="title" dest="text"/>