在WebSphere sMash中集成Java和PHP(7)

以下部分的代码是索引脚本的最后一部分。其中的大部分代码都是通用 PHP 脚本,枚举了目录中的所有文件,并按顺序逐一处理。确定了要索引的文件后,将会创建 FileDocument.需要使用文件的完全限定路径建立此对象,然后将其添加到 IndexWriter.

/**
* Processes a file by adding it to the indexer.
*/
function index_file($writer, $path) {
echo "Indexing file [".$path."]</br>";

try {
// A few of the files we indexed in the examples have non
// UTF-8 characters so we just skip indexing those files!

$file = new Java("java.io.File", $path, FALSE);
$file_document = new JavaClass("org.apache.lucene.demo.FileDocument");
$document = $file_document->Document($file);
$writer->addDocument($document);

} catch (JavaException $exception) {
echo "Invalid characters in file!\n";
}
}

function get_microtime(){
list($part_one,$part_two) = explode(' ',microtime());
return ((float) $part_one + (float) $part_two);
}

/**
* Indexes all matching files (by extension) in the directory tree.
*/
function recursive_index_directory($writer, $path, $extension) {
    echo "Indexing directory [".$path."]</br>";

    // Remove any trailing slash first
    if (substr($path, -1) == '/') {
        $path = substr($path, 0, -1);
    }
   
    // Make sure the directory is valid
    if (is_dir($path) == TRUE) {
    if (is_readable($path) == TRUE) {
$handle = opendir($path);

  // Scan through the directory contents
      $extension_length = strlen($extension);
  while (FALSE !== ($item = readdir($handle))) {
    if ($item != '.') {
        if ($item != '..') {
        $index_path = ($path.'/'.$item);
        if (is_dir($index_path) == TRUE) {
             recursive_index_directory(
        $writer, $index_path, $extension);
   } else {

         $position = strpos(strtolower($index_path), $extension);
               
         // Very rough and ready way to check for trailing extension!
         if ($position == (strlen($index_path)-$extension_length)) {
  index_file($writer, $index_path, $extension);
                }
                }
            }
        }
    }
    closedir($handle);
    }
    }
    return TRUE;
}

 

12、将 Web 浏览器指向脚本,并填写表单变量,如图 9 中所示。

    图 9. 建立目录索引时的 Web 浏览器输出

在WebSphere sMash中集成Java和PHP

13、单击 Index!,脚本将对所选文件进行索引。在上面的示例中,脚本指向一段 C 源代码,对五个源文件进行了索引。如果刷新 Eclipse 项目,会发现一个名为 Index 的新目录。此目录包含 Lucene 搜索引擎产生的搜索索引文件,如图 10 中所示。

    图 10. WebSphere sMash 应用程序的目录结构

在WebSphere sMash中集成Java和PHP

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzywsw.html