2012-03-16 102 views
0

我正在寻找像索尔一样的搜索和替换功能。在Solr中搜索并替换?

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

例如:“南非”将被视为一个单一的令牌进行进一步处理。同时也注意到这些可以是动态的,并且即将让最终用户决定他/她必须分组哪些词。所以NO语义是必需的。

我现在的计划是在这两个单词之间添加一个特殊字符,所以Solr会将它视为一个单一标记(StandardTokenizerFactory)以供进一步处理。

所以即时寻找类似:

replace("South Africa",South_Africa") 

任何人都可以有什么解决办法?

+0

我猜你需要共发现和其他的自然语言技术(词性)“理解”令牌。我对可以理解单词的过滤器感兴趣(例如,在“IT经理”和“正在下雨”中区分“它”) – aitchnyu 2012-03-16 12:47:23

回答

0

使用同义词过滤器并在synonyms义文本中定义这些替换。一旦你有所有的定义,重建索引。

您可能会有这样一个条目来处理字段在同义词之前有一个LowerCase过滤器的情况,以及同义词出现在LowerCase之前的情况。

南非,南非=> southafrica

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

+0

很酷..所以即时通讯计划创建synonnyms.txt每当用户分组两个单词并尝试重建索引。谢谢你的提示。 – prasann 2012-03-17 07:19:38

0

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

+0

这些过滤器只具有配置级别设置。但是我的文档会改变。 – prasann 2012-03-16 09:48:57