【问题标题】:Search and Replace in Solr?在 Solr 中搜索和替换?
【发布时间】:2015-04-27 14:20:15
【问题描述】:

我正在寻找类似 Solr 中的搜索和替换功能。

我已经将一个文档转储到 solr 中,并对其进行了一些文本分析。有时我可能需要将几个单词组合在一起,并希望 solr 将其视为一个单独的标记。

例如:“南非”将被视为一个单一的令牌以进行进一步处理。还要注意,这些可以是动态的,我会让最终用户决定他/她必须对哪些词进行分组。所以不需要语义。

我目前的计划是在这两个单词之间添加一个特殊字符,以便 Solr 将其视为一个单独的令牌 (StandardTokenizerFactory) 以进行进一步处理。

所以我正在寻找类似的东西:

replace("South Africa",South_Africa")

谁能有解决办法?

【问题讨论】:

  • 我猜你需要 WordNet 和其他自然语言技术(词性)来“理解”标记。我对可以理解单词的过滤器感兴趣(例如,区分“IT 经理”和“正在下雨”中的“它”)

标签: replace solr lucene


【解决方案1】:

使用同义词过滤器并在 synonyms.txt 文件中定义这些替换。完成所有定义后,重建索引。

您可能会有这样的条目来处理字段在同义词之前有小写过滤器和同义词在小写之前出现的情况。

南非,南非 => 南非

更多信息在这里http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory

【讨论】:

  • cool.. 所以我目前计划在用户将两个单词分组并尝试重建索引时创建 synonnyms.txt。感谢您的提示。
【解决方案2】:

您也许可以使用PatternReplaceFilter 和一个聪明的正则表达式。

【讨论】:

  • 这些过滤器只有配置级别的设置。但我的会根据文件而改变。
猜你喜欢
  • 2010-12-13
  • 2015-08-18
  • 2010-10-06
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 2017-01-05
  • 2020-07-20
相关资源
最近更新 更多