Ich benutze Solr 6.6.0. (Und der Kern wurde mit "Beispiel" erstellt) Wenn ich Rich-Dokument (hier HTML) mit ExtractingRequestHandler importieren, werden unnötiger Zeilenvorschubcode (\ n) und Tabulatorzeichen (\ t) indiziert. Ich habe versucht, MappingCharFilterFactory etc, aber es war unwirksam. Ich habe auch auf die folgende URL verwiesen, aber es gab keinen Effekt. So entfernen Sie n oder t Code in Solr
Wie verhindern Sie, dass Tabs und Newline-Codes (\ n, \ r \ n, \ t) indiziert werden?
[Schritte Ich habe]
- Zugang zu "http://localhost:8983/solr/#/sample/documents"
- mein Kern wählen (Probe). Und klicken Sie auf den Link "Dokument" im linken Menü.
die Formen
- test.html
- Extrahierung Anf Anfrage-Handler "/ update/Extrakt"
- Dokumenttyp Datei hochladen
- Documetn (n) füllen. Handler Params * nicht spezifiziert
- Commit 1000 Innerhalb
- Überschreiben wahr
Select "text.html" oben und ausführen.
[Antwort]
Status: success
Response:
{
"responseHeader": {
"status": 0,
"QTime": 618
}
}
[QueryResults]
{
"responseHeader":{
"status":0,
"QTime":0,
"params":{
"q":"*:*",
"indent":"on",
"wt":"json",
"_":"1498437444505"}},
"response":{"numFound":1,"start":0,"docs":[
{
"size_d":20.0,
"content_type_s":"text/html",
"filename_txt_ja":"test.html",
"content_txt_ja":" \n \n \n \n \n \n \n \n \n \n \n \n AAA\n\tBBB\n\tCCC\nDDD ",
"id":"5a311ac9-77fe-46a6-8524-4ab40c8ece4a",
"_version_":1571244755499614208}]
}
}
Ich möchte diese "\ n" und "\ t" in content_txt_ja Feld disapper.
und hier ist meine Config XML-Dateien
[solrconfig.xml]
<requestHandler name="/update/extract"
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
<str name="lowernames">true</str>
<str name="uprefix">ignored_</str>
<!-- capture link hrefs but ignore div attributes -->
<str name="captureAttr">true</str>
<str name="fmap.meta">ignored_</str>
<str name="fmap.a">ignored_</str>
<str name="fmap.div">ignored_</str>
<str name="fmap.a">ignored_</str>
<str name="fmap.stream_content_type">content_type_s</str>
<str name="fmap.content">content_txt_ja</str>
<str name="fmap.body">content_txt2_ja</str>
<str name="fmap.stream_name">filename_txt_ja</str>
<str name="fmap.author">author_txt_ja</str>
<str name="fmap.last_author">last_author_txt_ja</str>
<str name="fmap.creation_date">creation_dt</str>
<str name="fmap.last_modified">modified_dt</str>
<str name="fmap.stream_size">size_d</str>
</lst>
</requestHandler>
[Managed-schema.xml]
<dynamicField name="*_txt_ja" type="text_ja" indexed="true" stored="true"/>
<fieldType name="text_ja" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false">
<analyzer>
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping.txt"/>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="(\\n)" replacement=""/>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="\n" replacement=""/>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="[\\n]" replacement=""/>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="[\n]" replacement=""/>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="\t" replacement=""/>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="\\t" replacement=""/>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="\\u000a" replacement=" AAA " />
<charFilter class="solr.PatternReplaceFilterFactory" pattern="\u000A" replacement="," />
<charFilter class="solr.PatternReplaceFilterFactory" pattern="\u000D" replacement=";" />
<charFilter class="solr.PatternReplaceFilterFactory" pattern="\u000D\u000A" replacement="." />
<charFilter class="solr.PatternReplaceFilterFactory" pattern="\\u000A" replacement="," />
<charFilter class="solr.PatternReplaceFilterFactory" pattern="\\u000D" replacement=";" />
<charFilter class="solr.PatternReplaceFilterFactory" pattern="\\u000D\\u000A" replacement="." />
<charFilter class="solr.PatternReplaceFilterFactory" pattern="(\\u000A)" replacement="," />
<charFilter class="solr.PatternReplaceFilterFactory" pattern="(\\u000D)" replacement=";" />
<charFilter class="solr.PatternReplaceFilterFactory" pattern="(\\u000D\\u000A)" replacement="." />
<!--<tokenizer class="solr.JapaneseTokenizerFactory" mode="search"/>-->
<!--<tokenizer class="solr.JapaneseTokenizerFactory" mode="normal"/>-->
<tokenizer class="solr.JapaneseTokenizerFactory" mode="search" userDictionary="lang/userdict_ja.txt"/>
<filter class="solr.TrimFilterFactory" />
<!-- Reduces inflected verbs and adjectives to their base/dictionary forms (辞書形) -->
<filter class="solr.JapaneseBaseFormFilterFactory"/>
<!-- Removes tokens with certain part-of-speech tags -->
<filter class="solr.JapanesePartOfSpeechStopFilterFactory" tags="lang/stoptags_ja.txt" />
<!-- Normalizes full-width romaji to half-width and half-width kana to full-width (Unicode NFKC subset) -->
<filter class="solr.CJKWidthFilterFactory"/>
<!-- Removes common tokens typically not useful for search, but have a negative effect on ranking -->
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ja.txt" />
<!-- Normalizes common katakana spelling variations by removing any last long sound character (U+30FC) -->
<filter class="solr.JapaneseKatakanaStemFilterFactory" minimumLength="4"/>
<!-- Lower-cases romaji characters -->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Ich löste dies durch Hinzufügen von "RegexReplaceProcessorFactory" -Konfiguration zu "updateRequestProcessorChain" in solrconfig.xml. Danke @Alessandro –