|
|
|
swagger: '2.0'
|
|
|
|
info:
|
|
|
|
title: "Matrix Client-Server v1 Search API"
|
|
|
|
version: "1.0.0"
|
|
|
|
host: localhost:8008
|
|
|
|
schemes:
|
|
|
|
- https
|
|
|
|
- http
|
|
|
|
basePath: /_matrix/client/api/v1
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
securityDefinitions:
|
|
|
|
accessToken:
|
|
|
|
type: apiKey
|
|
|
|
description: The user_id or application service access_token
|
|
|
|
name: access_token
|
|
|
|
in: query
|
|
|
|
paths:
|
|
|
|
"/search":
|
|
|
|
post:
|
|
|
|
summary: Search server side for things.
|
|
|
|
description: |-
|
|
|
|
Performs a full text search across different categories.
|
|
|
|
security:
|
|
|
|
- accessToken: []
|
|
|
|
parameters:
|
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
example: |-
|
|
|
|
{
|
|
|
|
"search_categories": {
|
|
|
|
"room_events": {
|
|
|
|
"keys": [
|
|
|
|
"content.body"
|
|
|
|
],
|
|
|
|
"search_term": "martians and men"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
properties:
|
|
|
|
search_categories:
|
|
|
|
type: object
|
|
|
|
title: "Categories"
|
|
|
|
description: Describes which categories to search in and
|
|
|
|
their criteria.
|
|
|
|
properties:
|
|
|
|
room_events:
|
|
|
|
type: object
|
|
|
|
title: "Room Events"
|
|
|
|
description: Mapping of category name to search criteria.
|
|
|
|
properties:
|
|
|
|
search_term:
|
|
|
|
type: string
|
|
|
|
description: The string to search events for
|
|
|
|
keys:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: string
|
|
|
|
enum: ["content.body", "content.name", "content.topic"]
|
|
|
|
description: The keys to search. Defaults to all.
|
|
|
|
filter:
|
|
|
|
type: object
|
|
|
|
title: Filter
|
|
|
|
description: |-
|
|
|
|
The filter to apply to search results.
|
|
|
|
This has the same format as v2 filter API.
|
|
|
|
required: ["search_term"]
|
|
|
|
required: ["search_categories"]
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: Results of the search.
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
title: Results
|
|
|
|
required: ["search_categories"]
|
|
|
|
properties:
|
|
|
|
search_categories:
|
|
|
|
type: object
|
|
|
|
title: Categories
|
|
|
|
description: Describes which categories to search in and
|
|
|
|
their criteria.
|
|
|
|
properties:
|
|
|
|
room_events:
|
|
|
|
type: object
|
|
|
|
title: Room Event Results
|
|
|
|
description: Mapping of category name to search criteria.
|
|
|
|
properties:
|
|
|
|
count:
|
|
|
|
type: number
|
|
|
|
description: Total number of results found
|
|
|
|
results:
|
|
|
|
type: object
|
|
|
|
title: Results
|
|
|
|
description: Mapping of event_id to result.
|
|
|
|
additionalProperties:
|
|
|
|
type: object
|
|
|
|
title: Result
|
|
|
|
description: The result object.
|
|
|
|
properties:
|
|
|
|
rank:
|
|
|
|
type: number
|
|
|
|
description: A number that describes how closely
|
|
|
|
this result matches the search. Higher is
|
|
|
|
closer.
|
|
|
|
result:
|
|
|
|
type: object
|
|
|
|
title: Event
|
|
|
|
description: The event that matched.
|
|
|
|
allOf:
|
|
|
|
- "$ref": "core-event-schema/room_event.json"
|
|
|
|
examples:
|
|
|
|
application/json: |-
|
|
|
|
{
|
|
|
|
"search_categories": {
|
|
|
|
"room_events": {
|
|
|
|
"count": 24,
|
|
|
|
"results": {
|
|
|
|
"$144429830826TWwbB:localhost": {
|
|
|
|
"rank": 0.00424866,
|
|
|
|
"result": {
|
|
|
|
"age": 526228296,
|
|
|
|
"content": {
|
|
|
|
"body": "Test content",
|
|
|
|
"msgtype": "m.text"
|
|
|
|
},
|
|
|
|
"event_id": "$144429830826TWwbB:localhost",
|
|
|
|
"origin_server_ts": 1444298308034,
|
|
|
|
"room_id": "!qPewotXpIctQySfjSy:localhost",
|
|
|
|
"type": "m.room.message",
|
|
|
|
"user_id": "@test:localhost"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
400:
|
|
|
|
description: Part of the request was invalid.
|
|
|
|
429:
|
|
|
|
description: This request was rate-limited.
|
|
|
|
schema:
|
|
|
|
"$ref": "definitions/error.yaml"
|