特殊文字で何かを検索しようとすると、見つかりません。solr_schema.xml に必要なフィルターを追加しました。
文字スケープを使用して Solr (コンソール) で検索すると、機能します。
例:
タイトル要素:\+
結果:
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">1</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">title_element:\+</str>
<str name="version">2.2</str>
<str name="rows">10</str>
</lst>
</lst>
<result name="response" numFound="1" start="0">
<doc>
<str name="clean_content">textocontilde</str>
<str name="django_ct">core.element</str>
<str name="django_id">28</str>
<str name="id">core.element.28</str>
<str name="text">textocontilde</str>
<str name="title_element">dsfsdfsfd hola+</str>
</doc>
</result>
</response>
SearchQuerySet を使用しようとすると、機能しません-
sqs_title_element= SearchQuerySet().autocomplete(title_element='\+')
何が問題なのか、エンジンには構成があります。
ファイルタイプの構成:
<fieldType name="ngram" class="solr.TextField" >
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="15" />
<filter class="solr.ASCIIFoldingFilterFactory" words="mapping-FoldToASCII.txt"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory" words="mapping-FoldToASCII.txt"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
</analyzer>
</fieldType>
回答ありがとうございます。