2017-08-16 79 views
0

我正在从一台服务器移动到另一台,并且我安装了Solr的新副本6.6.0。除了同义词,我拥有所有的工作。这是我在我的synonyms.txt文件示例:Solr同义词似乎没有工作

卡通,漫画,卡通,搞笑,绘画,素描,画,素描,画

我已经Solr的重新启动,然后用以下方法测试:

((keywords:"cartoon") OR (description:"cartoon")) 

但是,它没有给出结果。如果我搜索:

((keywords:"cartoons") OR (description:"cartoons")) 

...然后我得到结果。我需要做其他事情来启用同义词吗?

这里是模式内容:https://pastebin.com/eV3emAjv

这里是我的synonyms.txt文件:https://pastebin.com/TjYxEfbi

有趣的是,它似乎在规模要小得多工作。如果我只是把它放在文件中:

cartoon, comic, cartoons, funny, drawing, sketch, draw, drawings, draw 

...重新启动Solr,它会工作(31,000结果)。但是,只要我把剩下的内容放回去,我什么也得不到。我的同义词.txt文件中必须有一些东西导致它不能正确解析它(或类似的东西)。有没有办法调试该文件?我有超过1000条规则需要一个一个检查,否则我不能保持这个想法!

更新:我已经追踪到一行。如果我评论了这一点,它工作正常(拍了很多取出,重新加载,测试,等等等等的):

clipart, clip-art, image, art, graphics, clip, images, picture, pictures, vemultimedia, cartoon, royalty+free, royalty-free 

任何想法,为什么它会不喜欢那一个?

UPDATE 2:我发现问题 - 但现在我不太清楚解决方案是什么。基本上,我们有2号线有单词“卡通”:

cartoon, comic, cartoons, funny, drawing, sketch, draw, drawings, draw 

clipart, clip-art, image, art, graphics, clip, images, picture, pictures, vemultimedia, royalty+free, royalty-free, cartoon 

更有点经过调试 - 我发现,它似乎并不喜欢+或 - 中的话:

royalty+free 
royalty-free 

这肯定是可以的吗?我们可以在单词之间使用破折号和空格吗? :/

+0

是的,请向我们展示您的schema.xml – Oyeme

+0

@Oyeme谢谢 - 我已经使用pastebin更新了我的帖子(https://pastebin.com/eV3emAjv) –

+0

您在帖子中提到的两种语法看起来都一样。但是你告诉过,当别人没有时,你会得到结果。 – Jeyaprakash

回答

0

旧服务器和新服务器是否具有相同的solr版本。 如果没有,那么你可能需要重新索引基于solr旧版本的数据。

+0

谢谢。这些版本是完全不同的(另外一个版本是在3 - 4年前建立的,新版本是最新版本,使用起来更好!)。但是,所有数据都是新鲜导入的。你是否需要重新编制索引以使其能够接受更改?如果是这样,这不是一个问题 - 但我只是假定即使在索引数据之后它也会选择这个问题? –

+0

如果它是在新solr重新索引,那么它应该工作。你可以验证配置是否正确,并且你的集合正在使用具有同义词的配置。 – jsp

+0

多数民众赞成我的问题,我不知道如何验证它:)有没有一种工具来验证您的configs/xml/synonyms .txt文件? –