gpt4 book ai didi

search - 如何索引纯文本文件以在 Sphinx 中进行搜索

转载 作者:行者123 更新时间:2023-12-01 06:14:24 25 4
gpt4 key购买 nike

我浏览了数十篇文章和论坛帖子,查看了官方文档,但找不到答案。这article听起来很有前途,因为据说要索引的数据通常可以来自非常不同的来源:SQL 数据库、纯文本文件、HTML 文件,但不幸的是,正如所有其他文章和论坛线程一样,它致力于MySQL

听到 Sphinx 如此酷,它可以做这个做那个,它几乎可以用你喜欢的任何数据源做任何你想做的事情,这让我感到很奇怪。但是所有那些使用 MySQL 以外的数据源的示例在哪里?当您想扫描世界上最简单的数据源 - 纯文本文件时,这只是一个最简单的 Sphinx 配置示例。比方说,我已经安装了 Sphinx 并且想要扫描我的主目录(递归地)以查找所有包含“Hello world”的纯文本文件。我应该怎么做才能实现它?

先决条件:

  • Ubuntu
  • sudo apt-get install sphinxsearch
  • ...下一步是什么???

最佳答案

在继续之前先看看这个Sphinx without SQL! .

理想情况下我会这样做。

我们将使用 Sphinx 的 sql_file_field用文件路径索引表。这是用于创建包含特定目录 (scandir) 的文件路径的表的 PHP 脚本。

<?php
$con = mysqli_connect("localhost","root","password","database");

mysqli_query($con,"CREATE TABLE fileindex ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,text VARCHAR(100) NOT NULL);");

// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$dir = scandir('/absolute/path/to/your/dir/');

foreach ($dir as $entry) {
if (!is_dir($entry)) {
$path= "/absolute/path/to/your/dir/$entry";
mysqli_query($con,"INSERT INTO fileindex ( text ) VALUES ( '$path' )");
}
}

mysqli_close($con);


?>

下面的代码是 sphinx.conf 文件,用于使用文件路径索引表。注意 sql_file_field 它将索引那些在文本(文件路径)列中指定的文件

source src1
{

type = mysql
sql_host = localhost
sql_user = root
sql_pass = password
sql_db = filetest
sql_port = 3306 # optional, default is 3306
sql_query_pre = SET CHARACTER_SET_RESULTS=utf8
sql_query_pre = SET NAMES utf8
sql_query = SELECT id,text from fileindex
sql_file_field = text

}

index filename
{
source = src1
path = /var/lib/sphinxsearch/data/files
docinfo = extern
}

indexer
{
mem_limit = 128M
}

searchd
{
log = /var/log/sphinxsearch/searchd.log
pid_file = /var/log/sphinxsearch/searchd.pid
}

创建表后,将 sphinx.conf 保存在/etc/sphinxsearch/sphinx.conf 中,只需运行 sudo indexer filename --rotate,您的索引就准备好了!键入搜索,然后键入关键字以获得结果。

关于search - 如何索引纯文本文件以在 Sphinx 中进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30813530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com