full diff

us.off-the-clock.searchRecords

off-the-clock.us +46 −25
From
bafyreialn5sccpfppwsvxeoeut5mz2ilojqsyxiz7yrbuh5zrrsscya3zq indexed 2026-11-09 10:13 UTC View this version
To
bafyreihqwmpuwp4izvj3uxdi5kqsywxtgbqus62kjga5tqwbbkkxwh4grm indexed 2026-11-09 12:07 UTC View this version

Compatibility

breaking 3 breaking changes, 7 non-breaking changes.

Breaking changes (3)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "us.off-the-clock.searchRecords#part", src: "us.off-the-clock.searchRecords#part", tgt: "us.off-the-clock.searchRecords#part.kind", kind: "prop", name: Some("kind") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "us.off-the-clock.searchRecords#part", src: "us.off-the-clock.searchRecords#part", tgt: "us.off-the-clock.searchRecords#part.value", kind: "prop", name: Some("value") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "us.off-the-clock.searchRecords:output", src: "us.off-the-clock.searchRecords:output", tgt: "us.off-the-clock.searchRecords:output.read", kind: "prop", name: Some("read") }
Non-breaking changes (7)
  • AddedVertex AddedVertex { vertex_id: "us.off-the-clock.searchRecords#part" }
  • AddedVertex AddedVertex { vertex_id: "us.off-the-clock.searchRecords#part.kind" }
  • AddedVertex AddedVertex { vertex_id: "us.off-the-clock.searchRecords#part.value" }
  • AddedVertex AddedVertex { vertex_id: "us.off-the-clock.searchRecords:output.read" }
  • AddedVertex AddedVertex { vertex_id: "us.off-the-clock.searchRecords:output.read:items" }
  • AddedEdge AddedEdge { src: "us.off-the-clock.searchRecords:output.read", tgt: "us.off-the-clock.searchRecords:output.read:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "us.off-the-clock.searchRecords:output.read:items", tgt: "us.off-the-clock.searchRecords#part", kind: "ref", name: None }

Migration guidance

Added

  • AddedVertex { vertex_id: "us.off-the-clock.searchRecords#part" }
  • AddedVertex { vertex_id: "us.off-the-clock.searchRecords#part.kind" }
  • AddedVertex { vertex_id: "us.off-the-clock.searchRecords#part.value" }
  • AddedVertex { vertex_id: "us.off-the-clock.searchRecords:output.read" }
  • AddedVertex { vertex_id: "us.off-the-clock.searchRecords:output.read:items" }

Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "us.off-the-clock.searchRecords:output", src: "us.off-the-clock.searchRecords:output", tgt: "us.off-the-clock.searchRecords:output.read", kind: "prop", name: Some("read") }
  • Breaking: RequiredEdgeAdded { vertex_id: "us.off-the-clock.searchRecords#part", src: "us.off-the-clock.searchRecords#part", tgt: "us.off-the-clock.searchRecords#part.kind", kind: "prop", name: Some("kind") }
  • Breaking: RequiredEdgeAdded { vertex_id: "us.off-the-clock.searchRecords#part", src: "us.off-the-clock.searchRecords#part", tgt: "us.off-the-clock.searchRecords#part.value", kind: "prop", name: Some("value") }
  • Non-breaking: AddedEdge { src: "us.off-the-clock.searchRecords:output.read", tgt: "us.off-the-clock.searchRecords:output.read:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "us.off-the-clock.searchRecords:output.read:items", tgt: "us.off-the-clock.searchRecords#part", kind: "ref", name: None }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "hit": {
55 "properties": {
66 "distanceKm": {
77 "description": "For near: the distance in kilometres from the point to the record's nearest place, a decimal.",
88 "maxLength": 16,
99 "type": "string"
1010 },
1111 "record": {
1212 "refs": [
1313 "us.off-the-clock.defs#postView",
1414 "us.off-the-clock.defs#eventView",
1515 "us.off-the-clock.defs#bookmarkView",
1616 "us.off-the-clock.defs#documentView",
1717 "us.off-the-clock.defs#listingView",
1818 "us.off-the-clock.defs#reviewView",
1919 "us.off-the-clock.polls.pollView"
2020 ],
2121 "type": "union"
2222 },
2323 "score": {
2424 "description": "The mode's own number as a decimal: BM25 made positive for keyword and text, cosine similarity for semantic, 0 for a search by place alone. Lexicons carry no floats.",
2525 "maxLength": 32,
2626 "type": "string"
2727 },
2828 "snippet": {
2929 "description": "The matched text with each match between [ and ].",
3030 "maxLength": 2000,
3131 "type": "string"
3232 }
3333 },
3434 "required": [
3535 "record",
3636 "score"
3737 ],
3838 "type": "object"
3939 },
4040 "main": {
41 "description": "Posts, events, bookmarks, polls, documents, listings and reviews of one content space the viewer reads, matching every condition given: words (keyword), a full-text query (text) or a meaning (semantic), an H3 cell, a radius around a point, a bookmark's domain and a tag. Only records the viewer may see are answered, never another space's. SearchUnavailable is answered for mode=semantic before any other parameter is read, so a call without q tells a client whether meaning search is on.",
41 "description": "Posts, events, bookmarks, polls, documents, listings and reviews of one content space the viewer reads, matching every part of a query and every other condition given: an H3 cell, a radius around a point and a bookmark's domain. The query's words and phrases rank the results and its other parts filter them; the parts read are answered in read. Only records the viewer may see are answered, never another space's. SearchUnavailable is answered for mode=semantic before any other parameter is read, so a call without query tells a client whether meaning search is on.",
4242 "errors": [
4343 {
4444 "name": "InvalidRequest"
4545 },
4646 {
4747 "name": "NotSpaceMember"
4848 },
4949 {
5050 "description": "mode=semantic on a site with no embeddings endpoint.",
5151 "name": "SearchUnavailable"
5252 }
5353 ],
5454 "output": {
5555 "encoding": "application/json",
5656 "schema": {
5757 "properties": {
5858 "cursor": {
5959 "type": "string"
6060 },
6161 "hits": {
6262 "items": {
6363 "ref": "#hit",
6464 "type": "ref"
6565 },
6666 "type": "array"
6767 },
6868 "mapUrl": {
6969 "description": "For a search by place: a signed map of this page's first ten hits, numbered in order (IMG-14), when a map provider is configured.",
7070 "format": "uri",
7171 "type": "string"
7272 },
7373 "noPlaces": {
7474 "description": "True on a search by place that found nothing in a space where no record has a place yet.",
7575 "type": "boolean"
76 },
77 "read": {
78 "description": "The parts of the query as they were read, in reading order.",
79 "items": {
80 "ref": "#part",
81 "type": "ref"
82 },
83 "type": "array"
7684 }
7785 },
7886 "required": [
79 "hits"
87 "hits",
88 "read"
8089 ],
8190 "type": "object"
8291 }
8392 },
8493 "parameters": {
8594 "properties": {
86 "collection": {
87 "description": "Posts, events, bookmarks, polls, documents, listings or reviews; all seven when absent.",
88 "format": "nsid",
89 "knownValues": [
90 "app.bsky.feed.post",
91 "community.lexicon.calendar.event",
92 "community.lexicon.bookmarks.bookmark",
93 "us.off-the-clock.polls.poll",
94 "site.standard.document",
95 "us.off-the-clock.listing",
96 "us.off-the-clock.review"
97 ],
98 "type": "string"
99 },
10095 "cursor": {
10196 "type": "string"
10297 },
10398 "domain": {
10499 "description": "Bookmarks whose subject's host is this domain or a subdomain of it, case-insensitive.",
105100 "maxLength": 253,
106101 "type": "string"
107102 },
108103 "from": {
109104 "description": "Records sorted at or after this time.",
110105 "format": "datetime",
111106 "type": "string"
112107 },
113108 "h3": {
114109 "description": "An H3 cell index in hexadecimal, at resolution 4 to 10.",
115110 "maxLength": 16,
116111 "type": "string"
117112 },
118113 "limit": {
119114 "default": 25,
120115 "maximum": 50,
121116 "minimum": 1,
122117 "type": "integer"
123118 },
124119 "mode": {
125 "default": "keyword",
120 "default": "best",
121 "description": "best ranks full text and meaning together; keyword requires every word; text reads the words and phrases as a full-text query; semantic ranks by meaning.",
126122 "knownValues": [
123 "best",
127124 "keyword",
128125 "text",
129126 "semantic"
130127 ],
131128 "maxLength": 16,
132129 "type": "string"
133130 },
134131 "near": {
135132 "description": "A point as decimal degrees, latitude,longitude.",
136133 "maxLength": 64,
137134 "type": "string"
138135 },
139 "q": {
140 "description": "Required unless h3, near, domain or tag is given.",
141 "maxLength": 200,
136 "query": {
137 "description": "The search as a member typed it, read whole (D100): words, \"phrases\", rating:N/10, @handle, mentions:@handle, type:X (post, reply, event, bookmark, document, poll, listing or review), has:X and no:X (parent, replies, tags; has:mentions), and #tag, combined with AND. Required unless h3, near or domain is given.",
138 "maxLength": 300,
142139 "minLength": 1,
143140 "type": "string"
144141 },
145142 "space": {
146143 "description": "The pair's TID.",
147144 "format": "tid",
148145 "type": "string"
149146 },
150 "tag": {
151 "description": "Bookmarks carrying this tag, case-insensitive.",
152 "maxLength": 64,
153 "type": "string"
154 },
155147 "until": {
156148 "description": "Records sorted before this time.",
157149 "format": "datetime",
158150 "type": "string"
159151 },
160152 "within": {
161153 "description": "The radius around near in kilometres, a decimal from 0.1 to 100; 5 by default.",
162154 "maxLength": 16,
163155 "type": "string"
164156 }
165157 },
166158 "required": [
167159 "space"
168160 ],
169161 "type": "params"
170162 },
171163 "type": "query"
164 },
165 "part": {
166 "description": "One part of a query as it was read: one word, a phrase without its quotes, a rating's number, a handle or DID without its @, a type's name, a statement's name, or a tag without its #.",
167 "properties": {
168 "kind": {
169 "knownValues": [
170 "words",
171 "phrase",
172 "rating",
173 "author",
174 "type",
175 "has",
176 "hasNo",
177 "mentions",
178 "tag"
179 ],
180 "maxLength": 16,
181 "type": "string"
182 },
183 "value": {
184 "maxLength": 300,
185 "type": "string"
186 }
187 },
188 "required": [
189 "kind",
190 "value"
191 ],
192 "type": "object"
172193 }
173194 },
174195 "id": "us.off-the-clock.searchRecords",
175196 "lexicon": 1
176197}

Compare other versions