Aynı anda birden fazla kelimeyi sorgulamak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
kelaynak2
Üye
Mesajlar: 135
Kayıt: 30 Haz 2003 02:18

Aynı anda birden fazla kelimeyi sorgulamak

Mesaj gönderen kelaynak2 »

Bir memo fieldde örneğin aralarına "+" işareti konmuş birden fazla kelimeyi aramak istiyorum.Googlede olduğu gibi.
Öncelikle verilen cümleyi parse ederek kelimelere ayırmak sonrada
where aciklama like "%kelime1%" AND aciklama like "%kelime2%"...

gibi bir SQl sorgusu oluşturmak gerekiyor.
Mutlaka programlarınızda kullanmışsınızdır, parse kodunu ve sql oluşturma kodunu bildirirseniz aynı zahmete katlanmak zorunda kalmayacağım.Saygılar.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Bu konu daha önce birkaç sefer geçti. Hangi veritabanını kullanıyorsunuz? Eğer veritabnınız Full text search'ü desteklemiyorsa, memoya girilen kelimeleri parse edip ayrı bir tabloya yazmanız lazım. Aratırsanız daha detaylı anlatılmıştı bu.

Kolay gelsin.
Kullanıcı avatarı
kelaynak2
Üye
Mesajlar: 135
Kayıt: 30 Haz 2003 02:18

Mesaj gönderen kelaynak2 »

Sevgili Admin
Ben access *.mdb yi kullanıyorum.Fulltext search özelliği olsa dediğiniz gibi kelimeleri parse etmeye gerek yok.Forumda araştırma yapacağım.Saygılar.
Kullanıcı avatarı
spoke25
Üye
Mesajlar: 434
Kayıt: 16 May 2005 04:06
Konum: Bolu

Mesaj gönderen spoke25 »

Ben bayrii teşekkür edeyimm Cevaplar için
Başlayan Herşey Birgün Bitmek Zorundadır.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Dikkat

Mesaj gönderen sabanakman »

where aciklama like "%kelime1%" AND aciklama like "%kelime2%" şartında dikkatimden kaçmayan bir nokta var. AND şartı değil OR şartı kullanılmalı aksi halde bu şartla hiç kayıt gelmez.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
shadowmann
Üye
Mesajlar: 508
Kayıt: 30 Oca 2004 10:49

Mesaj gönderen shadowmann »

Ben size yardımcı olacak bir fonksiyon yazayım. Bu fonk. kelime sonlarındaki boşlukları silmek için kullanılıyor. Basit ama kullanışlı bir fonk. Başlanğıçta + ' ya göre kaç kelime olduğunu bulmanız gerekiyor. Ve bu kelime sayısınca
where aciklama like "%kelime1%" AND aciklama like "%kelime2%"...
kelimeleri eklemek gerekiyor.

Kod: Tümünü seç

function StripBlanks(S:string): string;
var
i:integer;
begin
i:=Length(S);
while S[i]=' ' do //Burda sondaki karakter boşluksa.
Delete(S,i,1); //Burda boşluk karakterini siliyor 1 karakter. Ve döngü tekrarlanıyor. 
Dec(i);
end;
StripBlank:=S; //Fonk sonucuna S değişkeni değeri atanıyor.
end; 
[/code]
Kullanıcı avatarı
kelaynak2
Üye
Mesajlar: 135
Kayıt: 30 Haz 2003 02:18

Re: Dikkat

Mesaj gönderen kelaynak2 »

sabanakman yazdı:where aciklama like "%kelime1%" AND aciklama like "%kelime2%" şartında dikkatimden kaçmayan bir nokta var. AND şartı değil OR şartı kullanılmalı aksi halde bu şartla hiç kayıt gelmez.
Hayır ben özellikle AND ekledim.Örneğin metin içinde aralarında + olan kelimelerin hepsi varsa sadece o kayıtları döndürsün diye.Tıpkı Googledeki gibi.saygılar.
Cevapla