WSO2 DAS allows you to search for persisted events using the Data Explorer. In addition to selecting attributes and categories from lists as shown in Searching Data By Categories, you can write Apache Lucene queries to search for data. This section explains the syntax to be followed when searching for persisted data using Lucene queries.
Info |
---|
It is not possible to search for attributes defined as facets using Lucene queries. |
Query syntax
The following table specifies the query syntax that should be used for different search requirements
Search Requirement | Lucene Query Syntax | Example | ||
---|---|---|---|---|
View all the data in the selected event table. | Click Search without entering any value in the query field | N/A | ||
Search using a part of the attribute value | Insert the asterisk after the part of the attribute as relevant
| If you are searching for a book by the
| ||
Search using more than one attribute | <ATTRIBUTE_NAME>:<ATTRIBUTE_VALUE> AND <ATTRIBUTE_NAME>:<ATTRIBUTE_VALUE> | If you are searching for a book written by Roald Ronald Dahl which belongs to the Children's Fantasy category, you can search by the two attributes named
| ||
Search for records that match one of the matching criteria when multiple matching criteria is provided | <ATTRIBUTE_NAME>:<ATTRIBUTE_VALUE> OR <ATTRIBUTE_NAME>:<ATTRIBUTE_VALUE> | If you are searching for a book written by Robin Sharma or a book written by different author on the subject of Leadership, you can search by two attributes named
| ||
Search for records with a specific attribute value that is within a defined range
| <ATTRIBUTE_NAME>:[<MINIMUM_VALUE> TO <MAXIMUM_VALUE>] | If you are searching for a book for which the count is between 100 and 200, you can use use the following query.
|
For detailed information about the Lucene syntax, see Apache Lucene - Query Parser Syntax.
Info |
---|
It is not possible to search for attributes defined as facets directly using Lucene queries, but should be separately given in the Data Explorer, or used with the Analytics REST API. |
WSO2 DAS Lucene Query Extensions
Timestamp Operations on Fields
WSO2 DAS support supports only the primitive data types in when persisting data, thus . Therefore it does not have a special timestamp daa type as such. For this, user should use a data type for timestamp. The LONG
data type should be used when sending timestamp values. In the case of querying these fields as timestamp fields, However, because it is convenient for the user to give values in to query with a string timestamp format, rather than direct long values. The string format for this is "time stamp format instead of querying for a long value which is exactly the same as the actual value, the following string format is supported.
yyyy-MM-dd HH:mm:ss z
",
e.g. ", 2015-01-02 15:22:10 GMT+6
".
This value will be is converted to a Unix timestamp long value and will be then used for searching.
Sample Queries
- The following query can be used to search for a person whose last name is Smith and the date of birth is 2nd of January 2015.
surname:"Smith" AND birthdate:"2015-01-02"
- The following query can be used for a log level WARN which occurred at a time between the time stamps 2015-10-01 01:05:20 and 20.15-12-15 00:00:00.
log_level: "WARN" AND timestamp: [2015-10-01 01:05:20 TO 2015-12-15 00:00:00]
Search with Multi-Word Values
In Lucene, if a field of type STRING If an attribute of the STRING
type is instructed to be indexed, it will be tokenized and indexed, so the field can be searched with each Apache Lucene tokenises and indexes it in a manner that allows you to search by that attribute using individual word values. If the full value must be searched as a whole, and if we consider the target field name is "x", the field we must search would be "_x", which will search for the full value that is given. For example, if we have a field "name" indexed, and if the entry "Will Smith" is stored, among others, we can search for all names which has "Smith", with the following query:-you want to search by the attribute by using the complete attribute value, WSO2 DAS allows the following query to be used for this purpose.
_X:<EXACT_ATTRIBUTE_Value>
Info |
---|
In this query, X = Attribute Name |
Sample query
If the Name
attribute is indexed and a record with Will Smith
as the value of the Name
attribute is stored:
- Use the following query to search for all records with
Smith
as all or part of the value for theName
attribute.name:"Smith"
...
- Use the following query to search for
...
- all records where
Will Smith
is the exact value for theName
attribute._name:"Will Smith"