此内容没有您所选择的语言版本。
6.4. Server-side Selectors
6.4.1. Select messages using a filter 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
MRG 3 supports selecting messages from a queue using a server-side selector. This allows you to specify a filter using a SQL-like syntax. This filter is applied to the headers and properties of messages on the server. Messages that match the filter are delivered to the client.
To use server-side selectors, specify a
selector in the link portion of the connection URL.
The following example will cause the server to select and deliver messages that have
green, red, or blue as the value of the color property:
queue_name;{link:{selector:"color in ('green', 'red', 'blue')"}}
queue_name;{link:{selector:"color in ('green', 'red', 'blue')"}}
The following examples demonstrate selectors to filter messages on various header properties:
queue_name;{link:{selector:"amqp.priority = 1"}}
queue_name;{link:{selector:"amqp.priority IS BETWEEN 3 AND 6"}}
queue_name;{link:{selector:"myflag AND amqp.redelivered"}}
queue_name;{link:{selector:"msg_title LIKE '%news%'"}
queue_name;{link:{selector:"amqp.priority = 1"}}
queue_name;{link:{selector:"amqp.priority IS BETWEEN 3 AND 6"}}
queue_name;{link:{selector:"myflag AND amqp.redelivered"}}
queue_name;{link:{selector:"msg_title LIKE '%news%'"}
Python and temporary syntax
With Python, selectors can be used by temporary syntax. For example, the C++ address with selector:
queue_name;{link:{selector:"myproperty = 1"}}
queue_name;{link:{selector:"myproperty = 1"}}
in Python is temporarily used as:
queue_name;{link:{'x-subscribe': {'arguments': {'x-apache-selector': "myproperty = 1"}}}}
queue_name;{link:{'x-subscribe': {'arguments': {'x-apache-selector': "myproperty = 1"}}}}
The Java and server-side selectors
The Qpid Java client does not currently support server-side selectors, only JMS selectors. JMS selectors function differently than server-side selectors. Consult the JMS specification for more detail on JMS slectors.