Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]wyrażenia regularne - odrzucenie wyników zawierających słowa
sada
post 16.06.2012, 11:10:59
Post #1





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

Ostrzeżenie: (0%)
-----


Witam!
Mam następujące pytanie:
Mając jakiś tekst $tx
wyrazy pożądane $p1,$p2,$p3
wyrazy niepożądane $n1,$n2,$n3

Czy jest możliwe utworzenie jednego wyrażenia regularnego, które zwróci true (1) gdy w tekście znajduje się chociaż jeden z wyrazów pożądanych i żaden z niepożądanych.
Nie mam problemu z pożądanymi, ale z niepożądnaymi krucho.
[^wyraz] taki zapis wyklucza poszczególne znaki, ale i tak w ramach "jednego miejsca na znak" w tekście



Ostatecznie zadowoliłbym się rozwiązaniem mini:
Mając jakiś tekst $tx
wyraz niepożądany $n1

zwracającym true (1) jeśli w tekście nie występuje wyraz niepożądany.


NIe chodzi mi o kompletne rozwiązanie, a tylko podanie ewentualnej konstrukcji pozwalającej na to.
Nie ważny też jest problem czy znaleziony wyraz jest wyrazem czy częścią innego wyrazu.

Pozdrawiam forumowiczów

Ten post edytował sada 16.06.2012, 11:25:48
Go to the top of the page
+Quote Post
melkorm
post 16.06.2012, 12:11:45
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Tutaj regex nie jest totalnie potrzebny, tylko operacje na stringach i strpos i wtedy sprawdzasz czy jest jakieś słowo pożądane i jakieś niepożądane.

Ten post edytował melkorm 16.06.2012, 12:11:58


--------------------
Go to the top of the page
+Quote Post
sada
post 16.06.2012, 12:24:56
Post #3





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

Ostrzeżenie: (0%)
-----


Potrafię to zrobić za pomocą strpos.
Szukam metody z regex by zastosować do wyszukiwania w bazie Mongo.
Nie chciałbym robić tego na raty tzn. wyszukiwać dokumenty zawierające słowa pożądane a potem z nich wykluczać np przez strpos zawierające niepożądane, chyba że będzie to jedyna droga.
Go to the top of the page
+Quote Post
melkorm
post 16.06.2012, 13:10:06
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Szukanie pełno tekstowe w mongo to nieporozumienie bo musisz walić mnóstwo regexpów, moim zdaniem lepiej zrób tak jak sama specyfikacja mongo sugeruje, czyli dodać pole gdzie będzie tablica wszystkich słów, wtedy o wiele łatwiejsze i szybsze. Tutaj masz bardziej to wyjaśnione : http://www.mongodb.org/display/DOCS/Full+T...Search+in+Mongo.


--------------------
Go to the top of the page
+Quote Post
sada
post 16.06.2012, 14:04:54
Post #5





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

Ostrzeżenie: (0%)
-----


Dzięki, czytałem ten artykuł wcześniej, ale nawet jak rozbiję każdy tekst na słowa i umieszczę w bazie jako index to szukając frazy np "mapa polski" , nie znajdzie bo będzie "mapa" i "polski" jako dwa wyrazy, natomiast gdy rozbiję frazę podczas szukania na dwa słowa, znajdzie nawet, te które nie występują razem, a to będzie błąd. Po prostu indeksowanie musiało by być zrobione inteligentnie tzn. dodatkowo dodając zlepki wyrazów .
Go to the top of the page
+Quote Post
melkorm
post 16.06.2012, 15:27:42
Post #6





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


No to jeżeli chcesz prawdziwy FULL TEXT SEARCH to może lepiej użyć jakiegoś silnika do tego przeznaczonego ? np Solr ?

Z wyrażeniami regularnymi jeżeli chodzi o te słowa to do pozytywnego to nie problem, a do przeciwieństwa to negative look ahead & look behind (google it).


--------------------
Go to the top of the page
+Quote Post
sada
post 16.06.2012, 16:17:32
Post #7





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

Ostrzeżenie: (0%)
-----


od nutcha i solra zacząłem. Chciałem to połączyć z hbase ale projekt nie jest jeszcze stabilny i padłem .
Solr zintegrowany z nutchem działa ,
..... teraz dopiero zobaczyłem , że jest klasa Solr w PHP .
Nie wiem jeszcze jak Solr zintegrować z Mongodb ale prawdopodobnie jest to możliwe .
...w takim razie pomógł - dzięki

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 16:25