Bir ters dizin oluşturma ile yardım

2 Cevap php

Ben okul için yapıyorum bir bilgi erişim şeyin parçası. Plan bir dize değeri olarak kaydedilir iki harf ile bir anahtar ve herhangi bir kelime olarak kelimenin ilk iki harfi kullanarak kelime hashmap oluşturmaktır. Bu yüzden,

["ba"] hashmap = "kötü arpa base"

Ben o hashmap almak bir çizgi tokenizing bitirdim kez, serialize, ve anahtarın adını metin dosyasına ekleyebilir.

Fikir benim veri almak ve yüzlerce dosya üzerinden yayıldı eğer ben her dosya yoğunluğunu azaltma tarafından arama yerine getirmek için gereken zamanı azaltmak edeceksiniz. Ben herhangi bir nedenle bir kaç dosya oluşturma ve böylece bu girişleri boş boğulmamak olur her vadede 100 + dosyaları yapma olduğumda ben çalıştırıyorum sorundur. Is there any way to make this more efficient? Is it worth continuing this, or should I abandon it?

Ben PHP kullanıyorum bahsetmek istiyorum. Biliyorum iki dil nispeten yakından PHP ve Java vardır. Ön uç yapmak çok basit olacak ve ben autocompletion gibi özellikler eklemek mümkün olacak çünkü ben PHP seçti / bir sorun olmadan arama önerdi. Ben de Java kullanarak hiçbir yarar görüyorum. Herhangi bir yardım, teşekkür takdir edilmektedir.

2 Cevap

Ben tefrika dize almak ve koymak için tek bir dosya kullanmak istiyorsunuz. Ben de serileştirme olarak json kullanmak istiyorsunuz.

Put the data

$string = "bad barley base";
$data = explode(" ",$string);
$hashmap["ba"] = $data;

$jsonContent = json_encode($hashmap);
file_put_contents("a-z.txt",$jsonContent);

Get the data

$jsonContent = file_get_contents("a-z.txt");
$hashmap = json_decode($jsonContent);

foreach($hashmap as $firstTwoCharacters => $value) {
    if ($firstTwoCharacters == 'ba') {
        $wordCount = count($value);
    }
}

Eğer çözmeye çalıştığınız sorun açıklama yapmadı. Ben bir tam metin arama motoru yapmak için çalışıyoruz tahmin ediyorum, ama ben eşleşen belgeleri bulmak için hashmap kullanarak nasıl emin değilim böylece HashMap belge kimlikleri yok.

Bir tam metin arama motoru istiyor varsayarsak, ben veri yapısı için bir trie kullanarak içine bakmak istiyorum. Bunu çok büyük büyüyen olmadan her şeyi sığdırmak mümkün olmalıdır. Dizin istediğiniz bir kelime maç düğümler bu kelimeyi içeren belgelerin kimlikleri içerecektir.