mirror of
https://github.com/documize/community.git
synced 2025-07-19 21:29:42 +02:00
Improve search by tag for MySQL
Fixes #214 MySQL requires specific full text search queries.
This commit is contained in:
parent
4b7d4cf872
commit
f47f09661f
4 changed files with 22 additions and 24 deletions
|
@ -266,6 +266,11 @@ func (s Store) matchFullText(ctx domain.RequestContext, keywords, itemType strin
|
|||
|
||||
switch s.Runtime.StoreProvider.Type() {
|
||||
case env.StoreTypeMySQL:
|
||||
// Tag names can contain hyphens so we have to wrap text in double quotes
|
||||
// and then the query parser wraps in single quotes.
|
||||
if itemType == "tag" {
|
||||
keywords = fmt.Sprintf("\"%s\"", keywords)
|
||||
}
|
||||
fts = " AND MATCH(s.c_content) AGAINST(? IN BOOLEAN MODE) "
|
||||
case env.StoreTypePostgreSQL:
|
||||
// By default, we expect no Postgres full text search operators.
|
||||
|
|
|
@ -29,23 +29,8 @@ export default Component.extend({
|
|||
this.set('keywords', this.get('filter'));
|
||||
this.set('matchFilter', this.get('matchFilter'));
|
||||
this.fetch();
|
||||
console.log('receive a');
|
||||
},
|
||||
|
||||
didReceiveAttrs() {
|
||||
this._super(...arguments);
|
||||
// this.set('keywords', this.get('filter'));
|
||||
this.set('matchFilter', this.get('matchFilter'));
|
||||
this.fetch();
|
||||
console.log('update a');
|
||||
},
|
||||
|
||||
// didUpdateAttrs() {
|
||||
// this._super(...arguments);
|
||||
// this.fetch();
|
||||
// console.log('update a');
|
||||
// },
|
||||
|
||||
fetch() {
|
||||
let payload = {
|
||||
keywords: this.get('keywords'),
|
||||
|
|
|
@ -80,15 +80,23 @@
|
|||
}
|
||||
|
||||
.hashtags {
|
||||
> .hashtag {
|
||||
display: inline-block;
|
||||
margin: 5px 10px 0 5px;
|
||||
color: map-get($gray-shades, 600);
|
||||
font-size: 1rem;
|
||||
font-style: italic;
|
||||
padding: 0;
|
||||
|
||||
&:hover {
|
||||
color: $color-link;
|
||||
> .hashtag {
|
||||
padding: 0 15px 0 0;
|
||||
|
||||
> .dicon {
|
||||
color: map-get($gray-shades, 500);
|
||||
font-size: 20px;
|
||||
vertical-align: bottom;
|
||||
padding: 0 5px 0 0;
|
||||
}
|
||||
|
||||
> .name {
|
||||
display: inline-block;
|
||||
color: map-get($gray-shades, 800);
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{#each tagz as |tg|}}
|
||||
{{#link-to "search" (query-params filter=tg) class="hashtag"}}
|
||||
{{#link-to "search" (query-params filter=tg matchTag=true matchContent=false matchFile=false matchDoc=false) class="hashtag"}}
|
||||
<i class="dicon {{constants.Icon.Tag}}" />
|
||||
<div class="name">{{tg}}</div>
|
||||
{{/link-to}}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue