我有问题,我需要用弱not(-号)查询solr 例如,我想要包含病毒但不关心防病毒的文档。 像这样的查询:病毒-“反病毒”将删除可能包含病毒和“反病毒”的文档,但是我只想删除仅包含“反病毒”而不包含病毒的文档。
请注意病毒-“反病毒”仅是示例,它可以是包含该单词的任何单词和短语。
答案 0 :(得分:0)
这里有很多方案,如果您绝对需要仅在独立且未用其他字词标记的情况下查找包含“病毒”的文档,则需要进行一些索引时间处理,也许要替换“反病毒”与anti_virus或其他一些不匹配的组合。假定您知道索引编制期间的组合。
一种更简单的方法是说您要显示所有文档,但要升级包含独立“病毒”术语的文档。或更具体地说,将那些包含“反病毒”组合术语的软件降级。因此,仅包含“病毒”术语的文档将排在最前面,其次是包含独立术语和组合术语的文档,然后是仅包含组合术语的文档。这可以通过以下方式实现:
病毒“反病毒” ^ -10
^在这里是一个提升,您可以为其赋予负值。因此,任何匹配的复合词都将使文档的排名下降。