Compare commits

...

3 Commits

Author SHA1 Message Date
4a673d1894 Merge branch 'main' of https://git.dev-null.rocks/alexohneander/gosearch
Some checks failed
Go / build (push) Successful in -9s
renovate / renovate (push) Successful in 22s
SonarQube Scan / SonarQube Trigger (push) Failing after -18s
2025-03-26 08:11:10 +01:00
0d22da3643 ci: add sonarqube pipeline 2025-03-26 08:10:56 +01:00
72128f97a3 refactor: search logic to improve performance and reduce false positives by making query case-insensitive for simple queries and using trimmed whitespace in phrases 2025-03-26 00:28:23 +01:00
2 changed files with 29 additions and 6 deletions

View File

@ -0,0 +1,23 @@
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened]
name: SonarQube Scan
jobs:
sonarqube:
name: SonarQube Trigger
runs-on: ubuntu-latest
steps:
- name: Checking out
uses: actions/checkout@v4
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: SonarQube Scan
uses: kitabisa/sonarqube-action@v1.2.0
with:
host: ${{ secrets.SONARQUBE_HOST }}
login: ${{ secrets.SONARQUBE_TOKEN }}

View File

@ -12,7 +12,7 @@ import (
func SearchQuery(c *fiber.Ctx) error {
query := c.Params("query")
query = strings.TrimSpace(strings.ToLower(query))
query = strings.TrimSpace(query)
terms, queryType := parseQuery(query)
results := search.Search(terms, queryType, index.Index, index.DocFreq, len(index.Documents))
@ -29,12 +29,12 @@ func SearchQuery(c *fiber.Ctx) error {
// parseQuery parses the query to determine query type and terms
func parseQuery(query string) ([]string, string) {
if strings.Contains(query, "AND") {
return strings.Split(query, " AND "), "AND"
} else if strings.Contains(query, "OR") {
return strings.Split(query, " OR "), "OR"
if strings.Contains(strings.ToLower(query), "AND") {
return strings.Split(strings.ToLower(query), " AND "), "AND"
} else if strings.Contains(strings.ToLower(query), "OR") {
return strings.Split(strings.ToLower(query), " OR "), "OR"
}
return strings.Fields(query), "SIMPLE"
return strings.Fields(strings.ToLower(query)), "SIMPLE"
}
// phraseMatch checks if all terms appear in the given document in sequence