parent
aa6dd43775
commit
493e6d1ea7
|
@ -50,11 +50,12 @@ var queryCmd = &cobra.Command{
|
|||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
text := string(f)
|
||||
|
||||
queryResults = append(queryResults, &engine.QueryResult{
|
||||
File: file,
|
||||
Count: score,
|
||||
FirstMatch: engine.GetFirstMatchingLine(string(f), word),
|
||||
FirstMatch: engine.GetFirstMatchingLine(text, word),
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,10 @@ func (c *RedisClient) AddFile(file, content string) error {
|
|||
|
||||
// GetKey search for a key
|
||||
func (c *RedisClient) GetKey(key string) ([]string, error) {
|
||||
return c.conn.ZRevRange(key, 0, -1).Result()
|
||||
return c.conn.ZRevRangeByScore(key, &redis.ZRangeBy{
|
||||
Offset: 0,
|
||||
Count: -1,
|
||||
}).Result()
|
||||
}
|
||||
|
||||
// GetScore get score of element
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"bufio"
|
||||
"bytes"
|
||||
"net/http"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
@ -24,7 +25,9 @@ func GetWordsFromText(text string) (words []string) {
|
|||
scanner := bufio.NewScanner(bytes.NewBufferString(text))
|
||||
scanner.Split(bufio.ScanWords)
|
||||
for scanner.Scan() {
|
||||
words = append(words, strings.ToLower(scanner.Text()))
|
||||
w := strings.ToLower(scanner.Text())
|
||||
re, _ := regexp.Compile("[,|.|(|)|_]")
|
||||
words = append(words, re.ReplaceAllString(w, ""))
|
||||
}
|
||||
|
||||
return words
|
||||
|
@ -42,8 +45,9 @@ func IsTextFile(file []byte) bool {
|
|||
func GetFirstMatchingLine(text string, word string) string {
|
||||
scanner := bufio.NewScanner(bytes.NewBufferString(text))
|
||||
scanner.Split(bufio.ScanLines)
|
||||
|
||||
for scanner.Scan() {
|
||||
if strings.Index(scanner.Text(), word) > -1 {
|
||||
if strings.Index(strings.ToLower(scanner.Text()), word) > -1 {
|
||||
return scanner.Text()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ func TestText(t *testing.T) {
|
|||
assert := assert.New(t)
|
||||
|
||||
t.Run("CountWord", func(t *testing.T) {
|
||||
text := "Contrairement à une opinion répandue, le Lorem Ipsum n'est pas simplement du texte aléatoire. Il trouve ses racines dans une oeuvre de la littérature latine classique datant de 45 av. J.-C., le rendant vieux de 2000 ans. Un professeur du Hampden-Sydney College, en Virginie, s'est intéressé à un des mots latins les plus obscurs, consectetur, extrait d'un passage du Lorem Ipsum, et en étudiant tous les usages de ce mot dans la littérature classique, découvrit la source incontestable du Lorem Ipsum."
|
||||
text := "Contrairement à une opinion répandue, le Lorem Ipsum n'est pas simplement du texte aléatoire.\nIl trouve ses racines dans une oeuvre de la littérature latine classique datant de 45 av. J.-C., le rendant vieux de 2000 ans.\n\nUn professeur du Hampden-Sydney College, en Virginie, s'est intéressé à un des mots latins les plus obscurs, consectetur, extrait d'un passage du Lorem Ipsum, et en étudiant tous les usages de ce mot dans la littérature classique, découvrit la source incontestable du Lorem Ipsum."
|
||||
|
||||
assert.Equal(3, CountWord(text, "la"), "should be equal")
|
||||
})
|
||||
|
@ -18,7 +18,7 @@ func TestText(t *testing.T) {
|
|||
t.Run("GetWordsFromText", func(t *testing.T) {
|
||||
text := "Un professeur du Hampden-Sydney College, en Virginie, s'est intéressé à un des mots latins les plus obscurs, consectetur, extrait d'un passage du Lorem Ipsum."
|
||||
|
||||
assert.Equal([]string{"un", "professeur", "du", "hampden-sydney", "college,", "en", "virginie,", "s'est", "intéressé", "à", "un", "des", "mots", "latins", "les", "plus", "obscurs,", "consectetur,", "extrait", "d'un", "passage", "du", "lorem", "ipsum."}, GetWordsFromText(text), "should be equal")
|
||||
assert.Equal([]string{"un", "professeur", "du", "hampden-sydney", "college", "en", "virginie", "s'est", "intéressé", "à", "un", "des", "mots", "latins", "les", "plus", "obscurs", "consectetur", "extrait", "d'un", "passage", "du", "lorem", "ipsum"}, GetWordsFromText(text), "should be equal")
|
||||
})
|
||||
|
||||
t.Run("IsTextFile", func(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue