Solr - 找到最接近的多值字段索引匹配

时间:2013-08-15 20:39:11

标签: solr

我有一个solr索引,用多个标签索引项目(多值)

例如:

<item>
    <name>America x</name>
    <id>1</id>
    <tags>
        <tag>Edward Norton</tag>
        <tag>Beverly D'Angelo</tag>
        <tag>Ethan Suplee</tag>
    </tags>
</item>

<item>
    <name>The score</name>
    <id>2</id>
    <tags>
        <tag>Robert De Niro</tag>
        <tag>Edward Norton</tag>
        <tag>Marlon Brando</tag>
    </tags>
</item>

我想执行一个查找最匹配搜索的查询&#34; Rebert De Niro&#34; AND&#34; Edward Norton&#34; AND&#34; Ben Stiller&#34;

复杂性是,没有一个项目包含所有提到的3个标签,但最接近的是具有2个标签中的2个标签的第二个项目。

我不想执行手动置换组合查询,因为如果我一次搜索多个标签,它会变得复杂。

1 个答案:

答案 0 :(得分:1)

参见(e)dismax中可用的mm参数(最小匹配)。这允许您说出应该匹配的子句数,或者必要的最小匹配数。只要您指定AND,就会要求所有子句都存在。

你也可以指定OR - 匹配更多术语的文档应该自动得分更高的iirc。请参阅debugQuery以了解如何计算每个匹配的评分。