索尔给出了太多无关紧要的结果

时间:2013-01-13 00:13:49

标签: solr faceted-search

我有一个标记系统,标签是这样的:

italian kitchen
chinese kitchen
japanese kitchen
russian kitchen
vegeterian kitchen

当我查询意大利厨房时,我没有把意大利厨房放在首位。我一直得到俄语和日语以及其他无关的结果。在Solr架构中,我的tags字段的类型是字符串。我不知道为什么会这样。你能和我分享你的想法吗?

3 个答案:

答案 0 :(得分:4)

字段类型"字符串"表示您的字段未被标记化。因此,每个字段都有一个令牌 - 传入的整个字符串。因此,除非在整个字段上有一个精确的短语查询匹配,否则任何结果都不会比任何其他更相关,

你可能想要使用" text"在默认架构中,这会将字段分解为令牌。 IE而不是"意大利厨房"你会同时拥有"意大利语"和#34;厨房"在该领域索引的术语。

答案 1 :(得分:1)

你真的想通读the section on tokenizers,至少是前两节。然后,如果您在Solr 4中,请转到管理界面并尝试核心部分下的分析屏幕。这样您就可以将文本与您的类型(cat)放在一起,看看它实际上分解了什么。

现在,我觉得你希望“意大利厨房”成为一个可分类的分类。这是一个双重挑战,因为facet值来自生成的标记,所以你确实希望它作为一个字符串。在这种情况下,我的建议是将 cat 字段保留为字符串字段,并将copyField保存到具有标记化类型的 cat_text 中(查看示例的模式)并使用eDismax进行搜索跨多个字段,包括 cat_text

答案 2 :(得分:0)

确保你这样做:

q = your_field:“意大利厨房”

而不是

q = your_field:意大利厨房