Understanding the BNF syntax of DTTG search

Hi all, I’m reading DTTG 3.0’s documentation, and learning its search syntax. In Appendix, Search Operators, Syntax Description (p.59 in pdf version), there’s a BNF description for search syntax, formatted as follows:

<query> := [<colspec> :] <phrase>
<query> := [<colspec> :] <neargroup>
<query> := ( <query> )
<query> := <query> AND <query>
<query> := <query> OR <query>
<query> := <query> NOT <query>

<phrase> := string [*]
<phrase> := <phrase> + <phrase>

<colspec> := colname
<colspec> := { colname1 colname2 ... }

<neargroup> := NEAR ( <phrase> <phrase> ... [, N] )

Specifically, I’m not sure about the <colspec> := { colname1 colname2 ... } line. I do understand that we can scope a search phrase by field name, e.g., name:test, as defined by <colspec> := colname. But the next line seems suggesting that you can combine multiple fields as a single search scope prefix, like name comment:text. But this obviously doesn’t work.

So what does this line mean? How is it supposed to be used? Can you give an example?

It queries multiple columns like name or tags at the time, like this:

{name tags} : NEAR("Eric" "Jim", 10)

However, it doesn’t seem to work right now, presumably due to pre-filtering the query string. We’ll have a look.

I see, thanks.

Fixed for the next release :slightly_smiling_face:

Great, thanks :slight_smile: