Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

search.js 1.2 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
  1. const express = require('express')
  2. const libLanguages = require('../lib/languages')
  3. const searchVersions = require('../lib/search/versions')
  4. const languages = new Set(Object.keys(libLanguages))
  5. const versions = new Set(Object.values(searchVersions))
  6. const loadLunrResults = require('../lib/search/lunr-search')
  7. const loadAlgoliaResults = require('../lib/search/algolia-search')
  8. const router = express.Router()
  9. router.get('/', async function postSearch (req, res, next) {
  10. res.set({
  11. 'surrogate-control': 'private, no-store',
  12. 'cache-control': 'private, no-store'
  13. })
  14. const { query, version, language, filters, limit: limit_ } = req.query
  15. const limit = Math.min(parseInt(limit_, 10) || 10, 100)
  16. if (!versions.has(version) || !languages.has(language)) {
  17. return res.status(400).json([])
  18. }
  19. if (!query || !limit) {
  20. return res.status(200).json([])
  21. }
  22. try {
  23. const results = process.env.AIRGAP || req.cookies.AIRGAP
  24. ? await loadLunrResults({ version, language, query: `${query} ${filters || ''}`, limit })
  25. : await loadAlgoliaResults({ version, language, query, filters, limit })
  26. return res.status(200).json(results)
  27. } catch (err) {
  28. console.error(err)
  29. return res.status(400).json([])
  30. }
  31. })
  32. module.exports = router
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...