我有一个问题,我需要用弱的not (-符号)查询solr,例如我想要包含病毒的文档,但我不关心防病毒。像: virus -"anti virus“这样的查询将删除可能包含病毒和"anti”的文档,但我只想删除只包含"anti virus“而不包含病毒的文档。
请注意病毒-“反病毒”只是一个例子,它可以是包含该词的任何单词和短语。
发布于 2019-06-11 12:08:45
这里有相当多的场景,如果您绝对需要查找只有在独立的时候才包含“病毒”的文档,而不是用其他词标记的文档,那么您需要做一些索引时间处理,也许用anti_virus或其他一些不匹配的组合替换“防病毒”。这假设您知道索引过程中的组合是什么。
一种更简单的方法是,您想要显示所有文档,但又想升级那些包含独立“病毒”术语的文档。或者更具体地说,降级那些包含“反病毒”组合的术语。因此,只包含“病毒”术语的文档将排在首位,然后是同时包含独立术语和组合术语的文档,然后是仅包含组合术语的文档。这可以通过以下方式实现:
病毒“防病毒”^-10
^在这里是一个助推器,你给它一个负值。因此,任何匹配的复合词都会使文档在排名中下降。
https://stackoverflow.com/questions/56533846
复制相似问题