Further improved search result snippets
This commit is contained in:
parent
ad2d1a15bb
commit
71830d7c77
|
@ -98,9 +98,10 @@ const Title = styled(Highlight)`
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const ResultContext = styled(Highlight)`
|
const ResultContext = styled(Highlight)`
|
||||||
|
display: block;
|
||||||
color: ${props => props.theme.slateDark};
|
color: ${props => props.theme.slateDark};
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-top: 0;
|
margin-top: -0.25em;
|
||||||
margin-bottom: 0.25em;
|
margin-bottom: 0.25em;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,7 @@
|
||||||
"url": "git+ssh://git@github.com/outline/outline.git"
|
"url": "git+ssh://git@github.com/outline/outline.git"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@tommoor/remove-markdown": "0.3.1",
|
||||||
"@tommoor/slate-drop-or-paste-images": "^0.8.1",
|
"@tommoor/slate-drop-or-paste-images": "^0.8.1",
|
||||||
"autotrack": "^2.4.1",
|
"autotrack": "^2.4.1",
|
||||||
"aws-sdk": "^2.135.0",
|
"aws-sdk": "^2.135.0",
|
||||||
|
|
|
@ -5,6 +5,7 @@ import randomstring from 'randomstring';
|
||||||
import MarkdownSerializer from 'slate-md-serializer';
|
import MarkdownSerializer from 'slate-md-serializer';
|
||||||
import Plain from 'slate-plain-serializer';
|
import Plain from 'slate-plain-serializer';
|
||||||
import Sequelize from 'sequelize';
|
import Sequelize from 'sequelize';
|
||||||
|
import removeMarkdown from '@tommoor/remove-markdown';
|
||||||
|
|
||||||
import isUUID from 'validator/lib/isUUID';
|
import isUUID from 'validator/lib/isUUID';
|
||||||
import { Collection, User } from '../models';
|
import { Collection, User } from '../models';
|
||||||
|
@ -207,7 +208,7 @@ Document.searchForUser = async (
|
||||||
SELECT
|
SELECT
|
||||||
id,
|
id,
|
||||||
ts_rank(documents."searchVector", plainto_tsquery('english', :query)) as "searchRanking",
|
ts_rank(documents."searchVector", plainto_tsquery('english', :query)) as "searchRanking",
|
||||||
ts_headline('english', "text", plainto_tsquery('english', :query), 'MaxFragments=0, MinWords=10, MaxWords=30') as "searchContext"
|
ts_headline('english', "text", plainto_tsquery('english', :query), 'MaxFragments=1, MinWords=20, MaxWords=35') as "searchContext"
|
||||||
FROM documents
|
FROM documents
|
||||||
WHERE "searchVector" @@ plainto_tsquery('english', :query) AND
|
WHERE "searchVector" @@ plainto_tsquery('english', :query) AND
|
||||||
"teamId" = '${user.teamId}'::uuid AND
|
"teamId" = '${user.teamId}'::uuid AND
|
||||||
|
@ -243,7 +244,9 @@ Document.searchForUser = async (
|
||||||
|
|
||||||
return map(results, result => ({
|
return map(results, result => ({
|
||||||
ranking: result.searchRanking,
|
ranking: result.searchRanking,
|
||||||
context: unescape(result.searchContext),
|
context: removeMarkdown(unescape(result.searchContext), {
|
||||||
|
stripHTML: false,
|
||||||
|
}),
|
||||||
document: find(documents, { id: result.id }),
|
document: find(documents, { id: result.id }),
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
|
|
|
@ -63,6 +63,10 @@
|
||||||
lodash "^4.2.0"
|
lodash "^4.2.0"
|
||||||
to-fast-properties "^2.0.0"
|
to-fast-properties "^2.0.0"
|
||||||
|
|
||||||
|
"@tommoor/remove-markdown@0.3.1":
|
||||||
|
version "0.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@tommoor/remove-markdown/-/remove-markdown-0.3.1.tgz#25e7b845d52fcfadf149a3a6a468a931fee7619b"
|
||||||
|
|
||||||
"@tommoor/slate-drop-or-paste-images@^0.8.1":
|
"@tommoor/slate-drop-or-paste-images@^0.8.1":
|
||||||
version "0.8.1"
|
version "0.8.1"
|
||||||
resolved "https://registry.npmjs.org/@tommoor/slate-drop-or-paste-images/-/slate-drop-or-paste-images-0.8.1.tgz#4d94b5c1dd2de109546ee1f38a1e4a18df078c1e"
|
resolved "https://registry.npmjs.org/@tommoor/slate-drop-or-paste-images/-/slate-drop-or-paste-images-0.8.1.tgz#4d94b5c1dd2de109546ee1f38a1e4a18df078c1e"
|
||||||
|
|
Reference in New Issue