diff --git a/database/index.go b/database/index.go
index 69279bb..05f5864 100644
--- a/database/index.go
+++ b/database/index.go
@@ -21,7 +21,7 @@
 }
 
 func isTermSep(r rune) bool {
-	return unicode.IsSpace(r) || unicode.IsPunct(r) || unicode.IsSymbol(r)
+	return unicode.IsSpace(r) || unicode.IsPunct(r) && r != '.' || unicode.IsSymbol(r)
 }
 
 func normalizeProjectRoot(projectRoot string) string {
@@ -43,7 +43,9 @@
 	if x, ok := synonyms[s]; ok {
 		s = x
 	}
-	return stem(s)
+
+	// Trim the trailing period at the end of any sentence.
+	return stem(strings.Trim(s, "."))
 }
 
 var httpPat = regexp.MustCompile(`https?://\S+`)
@@ -125,11 +127,10 @@
 
 	if score > 0 {
 
-		if isStandardPackage(pdoc.ImportPath) {
-			for _, term := range parseQuery(pdoc.ImportPath) {
-				terms[term] = true
-			}
-		} else {
+		for _, term := range parseQuery(pdoc.ImportPath) {
+			terms[term] = true
+		}
+		if !isStandardPackage(pdoc.ImportPath) {
 			terms["all:"] = true
 			for _, term := range parseQuery(pdoc.ProjectName) {
 				terms[term] = true
diff --git a/database/index_test.go b/database/index_test.go
index e0092bf..655b4b3 100644
--- a/database/index_test.go
+++ b/database/index_test.go
@@ -77,13 +77,13 @@
 	},
 		[]string{
 			"all:",
-			"5849", "cly", "defin", "dir", "go",
+			"5849", "cly", "defin", "dir", "github.com", "go",
 			"import:bytes", "import:crypto/hmac", "import:crypto/sha1",
 			"import:encoding/base64", "import:encoding/binary", "import:errors",
 			"import:fmt", "import:io", "import:io/ioutil", "import:net/http",
 			"import:net/url", "import:regexp", "import:sort", "import:strconv",
 			"import:strings", "import:sync", "import:time", "interfac",
-			"oau", "project:github.com/user/repo", "rfc", "subset",
+			"oau", "project:github.com/user/repo", "repo", "rfc", "subset", "us",
 		},
 	},
 }
