Я ищу для внедрения простого индексатора в PHP. Да, я понимаю, что PHP вряд ли лучший инструмент для этой задачи, но я все равно хочу это сделать. Обоснование этого просто: я хочу один, а на PHP.
Сделаем несколько основных предположений:
Весь Interweb состоит из пяти тысяч HTML и / или текстовых документов. Каждый документ находится в определенном домене (UID) . Никаких других проприетарных / тайных форматов не существует в нашем воображаемом висмеанском Interweb.
Результат нашего удивительного PHP-алгоритма прямого индексирования должен быть следующим:
UID1 -> index.html -> helen, она, была, чемпионка, с веснушками
UID1 -> foo.html -> цыпленок, фермеры, идут, дома, едят, овцы
UID2 -> blah.html -> next, week, on, badgerwatch
UID2 -> gah.txt -> один, один, и один, есть, не, numberwang
В идеале я хотел бы увидеть решения, которые учитывают даже самые элементарные концепции обозначения символики / словарного значения / частичной речи. Конечно, я понимаю, что это принятие желаемого за действительное, и поэтому смирится с любыми достойными попытками разоблачить упомянутые мнимые документы:
<script>
и <html>
чтобы вычислить список UID (который может быть, например, доменом), за которым следует имя документа (ресурс в домене) и, наконец, список слова для этого документа. Я действительно понимаю, что теги HTML играют важную роль в семантическом размещении текста внутри документа, но на данном этапе мне все равно . На этом этапе я не забочусь о том, где бы вы ни находились. Достаточно даже рудиментарного набора «печатных» заявлений.
Заранее спасибо, надеюсь, что это было достаточно ясно.
Взгляни на
http://simplehtmldom.sourceforge.net/
Вы делаете что-то вроде
$p = new Simple_dom_parser(); $p->load("www.page.com"); $p->find("body")->plaintext;
И это даст вам весь текст. Хотите перебрать только ссылки
foreach ($p->find("a") as $link) { echo $link->innerText; }
Это очень полезно и мощно. Проверьте это.
Я не думаю, что полностью понимаю, что вы пытаетесь сделать, но вы можете легко получить простой результат:
<body>
. </body>
. Это действительно так, возможно, вам придется добавить некоторые исключения для обработки таких вещей, как теги <script>
(вы не хотите рассматривать javascript как слова, которые должны быть проиндексированы), но это должно дать вам базовый индекс форварда.