Further improved search result snippets

This commit is contained in:
Tom Moor 2018-08-04 22:46:55 -07:00
parent ad2d1a15bb
commit 71830d7c77
4 changed files with 12 additions and 3 deletions

View File

@ -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;
`; `;

View File

@ -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",

View File

@ -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 }),
})); }));
}; };

View File

@ -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"