我在我的 Solr 实例中启用了词干,我假设为了在不禁用词干的情况下执行精确的词搜索,就像将词放在引号中一样简单。然而,情况似乎并非如此?
有没有一种简单的方法可以实现这一目标?
有一种简单的方法,如果您指的是作为模糊搜索的一部分的“slop”(所需的相似性)(请参阅此处的Lucene 查询语法)。
例如,如果我执行此搜索:
q=field_name:determine
我看到包含“确定”、“确定”、“确定”等的结果。如果我然后像这样修改查询:
q=field_name:determine~1
我只看到包含“确定”一词的结果。这是因为我指定了所需的相似性 1,这意味着“完全匹配”。我可以在 0 到 1 之间指定这个值。
您可以做的另一件事是索引相同的文本,而不在一个字段中提取词干,而在另一个字段中提取词干。提升非词干领域,应该更喜欢词的精确版本而不是词干版本。当然,您也可以编写自己的查询解析器,将引用的短语仅定向到非词干字段。