我对 SOLR 搜索有一些相当复杂的要求,我需要针对标记内容的数据库执行这些搜索。我需要首先过滤数据库以获取与我的过滤器标签匹配的结果。任何具有黑名单中的标签的结果都应被删除,除非它们也包含白名单中的标签。
假设我想检索所有标记为“森林”或“保护”的文档。但我想排除标记为“英国”或“欧洲”的文档 - 除非它们也标记为“非洲”或“亚洲”。我尝试在 SOLR 查询中写下以下内容:
tag:((forest OR conservation) AND (africa OR asia OR !uk OR !europe))
对我来说逻辑似乎合理,但查询不起作用。我有 46 个带有“森林”或“保护”标签的文档 - 其中一份也带有“亚洲”标签,没有一个带有“英国”或“欧洲”标签,但查询未返回任何结果。
我还看到了有关 SOLR 的 fq(过滤查询)参数的信息,这听起来可能很有用。但这似乎也没有帮助。看起来是 NOT 和 OR 的组合导致 SOLR 崩溃。
我想做的事情可能吗?我的逻辑有什么地方有缺陷吗?顺便说一句,这是在 SOLR 1.4 上 - 如果这是一个已在某处解决的问题....
感谢您的任何建议!
try
tag:((forest OR conservation) AND (africa OR asia OR (*:* AND !uk AND !europe)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)