| | 121 | |
| | 122 | '''Функција за слични активности''' |
| | 123 | {{{ |
| | 124 | CREATE OR REPLACE FUNCTION find_similar_activities( |
| | 125 | query_embedding vector, |
| | 126 | top_n INT DEFAULT 5 |
| | 127 | ) |
| | 128 | RETURNS TABLE (activity_id INT, name VARCHAR, description VARCHAR, similarity FLOAT) AS $$ |
| | 129 | SELECT activity_id, name, description, |
| | 130 | 1 - (embedding <=> query_embedding) AS similarity |
| | 131 | FROM Activity |
| | 132 | WHERE embedding IS NOT NULL |
| | 133 | ORDER BY embedding <=> query_embedding |
| | 134 | LIMIT top_n; |
| | 135 | $$ LANGUAGE sql; |
| | 136 | }}} |
| | 137 | '''Функција за слични услуги''' |
| | 138 | {{{ |
| | 139 | CREATE OR REPLACE FUNCTION find_similar_services( |
| | 140 | query_embedding vector, |
| | 141 | top_n INT DEFAULT 5 |
| | 142 | ) |
| | 143 | RETURNS TABLE (serviceId INT, service_name VARCHAR, description VARCHAR, similarity FLOAT) AS $$ |
| | 144 | SELECT serviceId, service_name, description, |
| | 145 | 1 - (embedding <=> query_embedding) AS similarity |
| | 146 | FROM Service |
| | 147 | WHERE embedding IS NOT NULL |
| | 148 | ORDER BY embedding <=> query_embedding |
| | 149 | LIMIT top_n; |
| | 150 | $$ LANGUAGE sql; |
| | 151 | }}} |
| | 152 | '''Функција за слична опрема''' |
| | 153 | {{{ |
| | 154 | CREATE OR REPLACE FUNCTION find_similar_equipment( |
| | 155 | query_embedding vector, |
| | 156 | top_n INT DEFAULT 5 |
| | 157 | ) |
| | 158 | RETURNS TABLE (equipmentId INT, name VARCHAR, description VARCHAR, similarity FLOAT) AS $$ |
| | 159 | SELECT equipmentId, name, description, |
| | 160 | 1 - (embedding <=> query_embedding) AS similarity |
| | 161 | FROM Equipment |
| | 162 | WHERE embedding IS NOT NULL |
| | 163 | ORDER BY embedding <=> query_embedding |
| | 164 | LIMIT top_n; |
| | 165 | $$ LANGUAGE sql; |
| | 166 | }}} |