solr - SOLR 中的索引加字符

标签 solr escaping character uri

我正在使用 UAX29URLEmailTokenizerFactory tokenizer 在 SOLR 中索引一些 URI。问题是我的一些 URI 包含加号字符,SOLR 将其解释为空格并分割 URI。这个问题可以通过一些巧妙的“+”字符转义来解决吗?我在分析器中尝试了“+”,但得到了相同的结果。 这是我对字段的具体配置:

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
    <tokenizer class="solr.UAX29URLEmailTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.UAX29URLEmailTokenizerFactory"/>
    <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.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

最佳答案

您可以在分析器之前使用CharacterFilter(例如PatternReplaceCharFilterFactory)。这个link有一些很好的信息。我能想到的一个解决方案是将 + 字符替换为其他字符 - 然后当您提供此链接时,请记住将其替换回来。

另一件需要研究的事情是,将其替换为加号(%2B)的 URL 编码值,并查看分析器是否将其视为空格。

关于solr - SOLR 中的索引加字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11033100/

相关文章:

c# - 无法实例化事件处理程序。输入 : Sitecore. Publishing.HtmlCacheClearer

django - Django Haystack Solr-Solr的推荐位置和目录结构

arrays - 如何在 Swift 中将字符数组转换为字符串数组

php - 如何限制处理 php 的 textarea 字段中的字符数?

java - 将文档 ID 写入索引的异常;可能的分析错误

bash - 如果我在 'printf' 语句中引用 Bash 变量中存储的连字符(例如日期格式)等字符,如何转义它?

bash - 为什么反斜杠会阻止别名扩展?

mysql - 如何在MySql中转义撇号(单引号)?

c - 在 C 中替换字符串中的字符并随后取消替换的最佳方法

solr - 如何上载/索引丰富/结构化文本文档以使用ElasticSearch进行搜索?