diff options
| author | bobzel <zzzman@gmail.com> | 2020-08-12 13:09:36 -0400 |
|---|---|---|
| committer | bobzel <zzzman@gmail.com> | 2020-08-12 13:09:36 -0400 |
| commit | e5e693d7699e34d20fb183bc2514557edfb7d0f7 (patch) | |
| tree | e0cfd9ab9766d827c30a0a74ef27772bba5d41c2 /src/client/views/search | |
| parent | 5117ba5f30afe271095ae92c511844dfe7d0cc85 (diff) | |
fixed compound solr query syntax. fixed filter options to be sticky so that they don't get lost with a new search
Diffstat (limited to 'src/client/views/search')
| -rw-r--r-- | src/client/views/search/SearchBox.tsx | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/client/views/search/SearchBox.tsx b/src/client/views/search/SearchBox.tsx index 25baaa0b9..2e2e87092 100644 --- a/src/client/views/search/SearchBox.tsx +++ b/src/client/views/search/SearchBox.tsx @@ -24,8 +24,6 @@ import { ViewBoxBaseComponent } from "../DocComponent"; import { DocumentView } from '../nodes/DocumentView'; import { FieldView, FieldViewProps } from '../nodes/FieldView'; import "./SearchBox.scss"; -import { stringifyUrl } from "query-string"; -import { filterSeries } from "async"; export const searchSchema = createSchema({ id: "string", @@ -281,8 +279,7 @@ export class SearchBox extends ViewBoxBaseComponent<FieldViewProps, SearchBoxDoc oldWords.forEach((word, i) => { i === 0 ? newWords.push(key + mod + "\"" + word + "\"") : newWords.push("AND " + key + mod + "\"" + word + "\"") }); - let v = "(" + newWords.join(" ") + ")"; - query = query + " AND " + v; + query = `(${query}) AND (${newWords.join(" ")})`; } else { for (let i = 0; i < values.length; i++) { @@ -294,16 +291,16 @@ export class SearchBox extends ViewBoxBaseComponent<FieldViewProps, SearchBoxDoc }); let v = "(" + newWords.join(" ") + ")"; if (i === 0) { - query = query + " AND (" + v; + query = `(${query}) AND (${v}`; if (values.length === 1) { query = query + ")"; } } else if (i === values.length - 1) { - query = query + " " + v + ")"; + query = query + " OR " + v + ")"; } else { - query = query + " " + v; + query = query + " OR " + v; } } } @@ -607,7 +604,7 @@ export class SearchBox extends ViewBoxBaseComponent<FieldViewProps, SearchBoxDoc } private get filterQuery() { - const types = ["preselement", "docholder", "collection", "search", "searchitem", "script", "fonticonbox", "button", "label"]; // this.filterTypes; + const types = ["preselement", "docholder", "search", "searchitem", "script", "fonticonbox", "button", "label"]; // this.filterTypes; const baseExpr = "NOT baseProto_b:true AND NOT system_b:true"; const includeDeleted = this.getDataStatus() ? "" : " NOT deleted_b:true"; const includeIcons = this.getDataStatus() ? "" : " NOT type_t:fonticonbox"; @@ -757,12 +754,12 @@ export class SearchBox extends ViewBoxBaseComponent<FieldViewProps, SearchBoxDoc //this._endIndex = endIndex === -1 ? 12 : endIndex; this._endIndex = 30; const headers = new Set<string>(["title", "author", "*lastModified", "type"]); - if ((this._numTotalResults === 0 || this._results.length === 0) && this._openNoResults) { - if (this.noresults === "") { - this.noresults = "No search results :("; - } - return; - } + // if ((this._numTotalResults === 0 || this._results.length === 0) && this._openNoResults) { + // if (this.noresults === "") { + // this.noresults = "No search results :("; + // } + // return; + // } if (this._numTotalResults <= this._maxSearchIndex) { this._numTotalResults = this._results.length; |
