[Developers] mql_filter parameter to search API

Scott Meyer sm at metaweb.com
Fri Mar 13 19:31:13 UTC 2009


Andi Vajda wrote:
> On Fri, 13 Mar 2009, Philip Kendall wrote:
> 
>> What I'm trying to do is to get a list of all properties within Commons
>> that "match" a string in some way or another.
>>
>> I'm currently doing this via the search API[1] and then post-filtering
>> the results to remove any which have ids starting with /user/, /base/ or
>> /guid/. This obviously isn't ideal as it means I throw away a large
>> number of results, and may not find the results I'm looking for if
>> they're further down the list, but just hidden by lots of user-created
>> properties.
>>
>> There's an "mql_filter" parameter documented from the search API, but I
>> can't get it to do anything useful (other than blow up, which I've filed
>> a bug for[2]).
> 
> You've hit a limitation on mql_filter, here.
> I should fix this 500 by changing it into a 400 whereby the filter is 
> returned as invalid.
> 
> Basically, the way mql_filter works is that the guids of search matches are 
> passed to it via a guid|= clause. That clashes with your id clause, MQL 
> doesn't allow matching on both.

I believe the mql_filter you're looking for looks something like this:

[{
  "type": "/type/property",
  "schema": {
    "domain": {
      "key": {
        "namespace": "/"
      }
    }
  }
}]

This asks for properties of types in top-level domains (ie. /government).

-Scott


More information about the Developers mailing list