SOLR字段查询跳过记录if..语句
SOLR field query skip records if..statement
我在solr中有很多产品,都带有field_code和field_stock,我想排除这样的记录,用字段查询
-field_code:(A OR B) OR (-(field_code:C AND field_stock:false) AND -(field_code:D AND field_stock:false))
所以,所有带有 field_code A 或 B
的产品
或
所有带有 field_code C 或 D 且都没有库存的产品,应排除在外
其他所有东西都应该归还吗?
更新:
我在查询中添加了另一个字段,但它不起作用。
我有 field_code
, field_stock
和新的 field_type
我需要从查询中删除所有产品,即:
没有:field_code = A OR B OR C OR D
和
field_stock = 0 (-field_stock:1)
和
field_type = 'joe'
所以像这样:
SELECT * FROM table WHERE (field_code NOT IN (A,B,C,D) and field_type = 'joe' AND field_stock=0)
所以返回所有记录,但是上面的?有什么意义吗?
当使用否定查询时,您必须从某些东西中减去查询 - 仅具有否定查询本身不会做任何事情(如果您只有一个否定查询而没有任何布尔运算符 Solr 有助于为集合添加前缀前面的所有文件,因为这可能就是你的意思)。
类似这样的内容可能符合您的描述:
(*:* -field_code:(A OR B)) OR
(*:* -(field_code:(C OR D) AND field_stock:false))
我假设 field_code
是多值的,因为 OR
之后的第二项否则没有意义。
我在solr中有很多产品,都带有field_code和field_stock,我想排除这样的记录,用字段查询
-field_code:(A OR B) OR (-(field_code:C AND field_stock:false) AND -(field_code:D AND field_stock:false))
所以,所有带有 field_code A 或 B
的产品或
所有带有 field_code C 或 D 且都没有库存的产品,应排除在外
其他所有东西都应该归还吗?
更新:
我在查询中添加了另一个字段,但它不起作用。
我有 field_code
, field_stock
和新的 field_type
我需要从查询中删除所有产品,即:
没有:field_code = A OR B OR C OR D 和 field_stock = 0 (-field_stock:1) 和 field_type = 'joe'
所以像这样:
SELECT * FROM table WHERE (field_code NOT IN (A,B,C,D) and field_type = 'joe' AND field_stock=0)
所以返回所有记录,但是上面的?有什么意义吗?
当使用否定查询时,您必须从某些东西中减去查询 - 仅具有否定查询本身不会做任何事情(如果您只有一个否定查询而没有任何布尔运算符 Solr 有助于为集合添加前缀前面的所有文件,因为这可能就是你的意思)。
类似这样的内容可能符合您的描述:
(*:* -field_code:(A OR B)) OR
(*:* -(field_code:(C OR D) AND field_stock:false))
我假设 field_code
是多值的,因为 OR
之后的第二项否则没有意义。