Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Google Tarzı Arama
#1
Veritabanında google tarzı arama yapmak mümkün müdür? Örneğin 'Abdullah' ı ararken 'abullah' ya da 'aptullah' yazsak bile bulabilsin..
Cevapla
#2
(31-01-2017, Saat: 20:31)delphi-x Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlVeritabanında google tarzı arama yapmak mümkün müdür? Örneğin 'Abdullah' ı ararken 'abullah' ya da 'aptullah' yazsak bile bulabilsin..

Merhaba,
Kullanmak istediğiniz teknolojinin adı; "fuzzy search" tür.
Aranan kelimeye fonetik, alfabetik veya anlamca daha yakın olan anahtar kelimelere birer Score vererek, sıralama yapar ve listeler.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol'de SQL syntax'ı içinde kullanılabiliyor.
Fakat bana göre PostgreSql'ın kullandığı mantık yanlış. Hammaliyesi fazla. Tek bir SQL parametresi ile yapılabilse daha iyi olurdu.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
Sesli düşünüyorum, aradığım kelimeler base64 tutulsaydı, sen aradığında bir birine benzerlik yüzdesi olarak hesaplayarak getirseydi mümkün olur muydu acaba ?
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#4
base64 ün kelimelere bir anlam yüklemediğini düşünüyorum Smile
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#5
Veritabanını özel olarak belirtmediğiniz için, ben de Microsoft SQL Server için olanı yazayım. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#6
(01-02-2017, Saat: 08:12)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSesli düşünüyorum, aradığım kelimeler base64 tutulsaydı, sen aradığında bir birine benzerlik yüzdesi olarak hesaplayarak getirseydi mümkün olur muydu acaba ?

Fuzzy Search'te asıl temel; String eşleştirmelerdir.

Örneğin;
Aranan kelime= kot
Eşleşecek olanlar= kat,cot, coat, cost
Skor (Her dile ve lehçeye göre ayrı ayarlanır): kot=100, kat=50, cot=80, coat=40,cost=5

İkinci bir örnek:
Aranan kelime= psikoloji
Eşleşecek olanlar= pisikoloji, psikolog, psikoloğum, fizikçi oğlum, psychology, Physiology
Skor (Her dile ve lehçeye göre ayrı ayarlanır): psikoloji=100, pisikoloji=98, psikolog=75, psikoloğum=40,fizikçi oğlum=35, psychology=90, Physiology=60

Tabi bu algoritmanın görünen yüzü, arka planda mutlaka bir Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol vardır. Smile
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#7
SQLite kullanıyorum. MSSQL Serverdeki soundex fonksiyonu Sqlite'ta da  varmış. Ancak tam olarak desteklenmediği için bir kullanım örneği bulamadım. Problemi kısmi olarak  Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol sayesinde çözdüm. Ancak maliyetli bir işlem. (içiçe sorgular ve yanlış karakter ihtimallerini deneyerek)
400 bin kelimelik db de 1-1,5 sn de istediğimi yapabiliyorum:
Aduncity kelimesi bir harf eksik ya da yanlış olma ihtimali sonucu:
1f2cc296a5.png
Cevapla
#8
Bunun bir çok yolu olabilir.

Kelime ile veritabanındaki kelimeleri karşılaştırmak bir yol. zuru yazıldı. duru, kuru, devamlı bir karakteri hatalı varsayıp alternifleri listelemek basitçe bir yol.

İki kelime benzerliğini yüzelik olarak karşılaştıran algoritmalar var. Delphi ile mutlaka örnek bulabilirsin.

Yanlış hatırlamıyorsam SSDeep denen bir karşılaştırma tekniği var. Genelde dosyalar için kullanılıyor.

Zemberek aracını inceleyebilirsin. OpenOffice gibi açık kaynaklara entegre edilebiliyor.

vs. vs.

En etkili, hızlı, pratik diyebileceğimiz yol kullanıcı deneyimleri olsa gerek. Diğer bir çok yolda yüksek sorgu sayısı, yüksek işlem gücü gerekebilir. Kullanıcılar duru yazarken genel olarak 15 hatalı kelime yazabilir. Bu yolda kullanıcı deneyimlerine göre hareket ettiğiniz için 20-30 sonucu sadece listeleme yapmak yeterli. Peki bu listeyi nasıl bulacaksınız? Asıl soru bu. Hani ücretsiz uygulamalar oluyor ya. İşte bunların ücretini farketmeden deneyimlerinizle ödüyorsunuz.
Ağlarsa kablosuz ağlar, gerisi yerel ağlar...
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  DBLookupComboBox liste elemalarini arama klavye 7 178 13-06-2018, Saat: 16:59
Son Yorum: adelphiforumz
  [ÇÖZÜLDÜ] Google Calendar API Server tipi Erişim Metodu hakkında tecrübesi olan mrmarman 40 1.486 08-05-2018, Saat: 21:34
Son Yorum: Fesih ARSLAN
  sql like ile birden fazla kelime arama erdogan 10 313 08-05-2018, Saat: 17:41
Son Yorum: erdogan
  Google Drive Authentication karex 2 153 29-04-2018, Saat: 22:27
Son Yorum: karex
  [ÇÖZÜLDÜ] Birden fazla alanı kullanarak arama yapmak? Cyb3r 4 888 20-07-2017, Saat: 12:59
Son Yorum: Abdullah ILGAZ



Konuyu Okuyanlar: 1 Ziyaretçi