Wyszukiwarka traktuje słowa oddzielone `_` jako osobne

Odpowiedz Nowy wątek
2019-08-20 18:52

Rejestracja: 10 lat temu

Ostatnio: 9 minut temu

3

Szukajka na forum traktuje np funkcję str_replace jak wyszukanie str replace - wyszukuje i funkcje substr (bo str się łapie) oraz preg_replace (bo replace się łapie).

Podobnie jak ktoś wyszuka preg_replace to znajdzie i preg_match i str_replace.

Moim zdaniem na forum programistycznym wyszukiwanie funkcji też powinno być dozwolone, tak że jak ktoś szuka str_replace to znajdzie tylko str_replace.


edytowany 2x, ostatnio: TomRiddle, 2019-08-21 11:21

Pozostało 580 znaków

2019-08-21 08:52
Administrator

Rejestracja: 18 lat temu

Ostatnio: 8 minut temu

1

Kurcze, masz racje :|

curl -X POST "localhost:9200/coyote/_analyze?pretty" -H 'Content-Type: application/json' -d'                                                                                                                                           
> {                                                                                                                                                                                                                                                                            
>   "analyzer": "default_analyzer",
>   "text": "str_replace() substr."
> }
> '
{
  "tokens" : [
    {
      "token" : "str",
      "start_offset" : 0,
      "end_offset" : 3,
      "type" : "word",
      "position" : 0
    },
    {
      "token" : "replace",
      "start_offset" : 4,
      "end_offset" : 11,
      "type" : "word",
      "position" : 1
    },
    {
      "token" : "substr",
      "start_offset" : 14,
      "end_offset" : 20,
      "type" : "word",
      "position" : 2
    }
  ]
}

To jest faktycznie do poprawienia. Trzeba zmienić chyba typ tokenizera na standard zamiast whitespace (chociaż mogę się mylić). Podawajcie inne przykłady błędnego działania, to od razu się unit testy napisze.

Pozostało 580 znaków

2019-08-21 09:17

Rejestracja: 9 lat temu

Ostatnio: 26 minut temu

0
TomRiddle napisał(a):

Moim zdaniem na forum programistycznym wyszukiwanie funkcji też powinno być dozwolone, tak że jak ktoś szuka str_replace to znajdzie tylko str_replace.

Moim zdaniem nie powinno tak być.
Wyszukanie "str_replace" powinno znaleźć na pierwszym miejscu (najlepiej punktowane) wyniki z "str_replace", ale na dalszych pozycjach wyszukiwarka powinna znajdować strony powiązane. Czyli "replace", "str_repeat" i "str".


Pozostało 580 znaków

2019-08-21 09:47

Rejestracja: 10 lat temu

Ostatnio: 9 minut temu

0
vpiotr napisał(a):
TomRiddle napisał(a):

Moim zdaniem na forum programistycznym wyszukiwanie funkcji też powinno być dozwolone, tak że jak ktoś szuka str_replace to znajdzie tylko str_replace.

Moim zdaniem nie powinno tak być.
Wyszukanie "str_replace" powinno znaleźć na pierwszym miejscu (najlepiej punktowane) wyniki z "str_replace", ale na dalszych pozycjach wyszukiwarka powinna znajdować strony powiązane. Czyli "replace", "str_repeat" i "str".

Tylko że w innych językach funkcje np wyglądają isset, strpos, substr - i one już nie będą rozdzielone na "is", "set" ani "str", "pos".

To byłoby bardzo niekonsekwentne


Pozostało 580 znaków

2019-08-21 11:08
Administrator

Rejestracja: 18 lat temu

Ostatnio: 9 godzin temu

Lokalizacja: Poznań

6
Adam Boduch napisał(a):

Podawajcie inne przykłady błędnego działania

Mi zawsze brakowało wyszukiwania "pełnych wielowyrazowych fraz".


edytowany 1x, ostatnio: Marooned, 2019-08-21 11:08
Oraz -wykluczeń, w tym -"także wielowyrazowych" - furious programming 2019-08-21 14:21

Pozostało 580 znaków

2019-08-21 11:22

Rejestracja: 10 lat temu

Ostatnio: 9 minut temu

0

Co do PHP jeszcze, napisanie zmiennej, np $match również jest szukane jako match. Ale nie mam zdania czy to do poprawy czy nie.


Pozostało 580 znaków

2019-08-21 11:23

Rejestracja: 10 lat temu

Ostatnio: 9 minut temu

1

I taki sam problem występuje jak coś chciałby w dziale C/C++ wyszukać std::replace, to znajdzie mu std oraz replace.


Pozostało 580 znaków

2019-08-21 11:24

Rejestracja: 10 lat temu

Ostatnio: 9 minut temu

1

test <=>

PS: operatora <=> również szukajka nie znajduje


edytowany 1x, ostatnio: TomRiddle, 2019-08-21 11:25

Pozostało 580 znaków

2019-08-21 11:25

Rejestracja: 10 lat temu

Ostatnio: 9 minut temu

1

test ?:

PS: Ani ?:


edytowany 1x, ostatnio: TomRiddle, 2019-08-21 11:25

Pozostało 580 znaków

2019-08-21 11:30

Rejestracja: 5 lat temu

Ostatnio: 1 godzina temu

Lokalizacja: Piwnica

1

Ten elasticsearch i tak działa średnio, więc szybciej wyszukasz po googlach, szkoda życia na to ;)


Pozostało 580 znaków

2019-08-21 11:38
Administrator

Rejestracja: 18 lat temu

Ostatnio: 8 minut temu

0

Elastic domyślnie usuwa symbole podczas indeksowania, ale można to zmienić. Np. w konfiguracji ustawione jest aby nie usuwał znaku # aby można było znaleźć poprawnie frazę C#.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0