其实我的问题似乎很基础。
mysql 数据库,这是在我的服务器本地主机上。sphinxapi 与 php 一起使用。尽我所能,我必须告诉 sphinx
嗯,我不知道应该更改哪个文件。
我在 sphinx 文件夹中找到了一个名为 configure 的文件,我尝试了这个,然后我更改了 sphinx.conf.in 但我仍然无法使用 sphinx。
如果你能帮我配置 sphinx 基本设置就太好了。
我研究了一些问题,但没有像这样的基本问题。
提前致谢。
最佳答案
我已经多次看到这种初学者的困惑,所以我想我会给出更详细的快速入门。因此,开始使用 Sphinx 搜索的基本介绍:
通常sphinx项目文件存放在三个目录下:project/sphinx/etc、project/sphinx/logs和project/sphinx/data。这些可以根据需要进行修改,但我遵循下面的约定。
在您的系统上安装 Sphinx 之后,您将拥有两个可执行文件:indexer 和 searchd。 indexer 是检查配置文件并为您指定的数据编制索引以便快速访问的程序。 searchd 是您通常希望保持运行的后台进程(或守护进程)。将其视为 Action Sphinx 搜索引擎。来自 sphinxapi 的所有查询都被路由到 searchd,它将对索引数据执行搜索并按照您指定的顺序返回记录的 ID。下面给出了运行这两个可执行文件的示例(在 linux 中,尽管在 windows 上应该差别不大):
indexer -c /path/to/project/sphinx/etc/sphinx.conf --all
这会索引配置文件中指定的所有源。更多选项可用于仅索引指定的来源。 Detailed listing of options here .
searchd -c /path/to/project/sphinx/etc/sphinx.conf --rotate
这会初始化 searchd 守护进程并将其派生到后台,它将继续运行直到您终止它。 rotate 选项允许您在将来更新索引时保持守护程序运行。您可以使用 --stop 开关来停止守护进程。 Detailed listing of options here .
这将我们带到了配置文件。配置文件由一组 source 和 index 配置以及用于配置 sphinx 本身的 searchd 部分组成。这里有很多选项需要配置,但是基本的 sphinx.conf(通常是在 sphinx 安装文件夹中找到的 sphinx.conf.dist 文件)文件有点让人不知所措第一的。我只是提到一些让您入门所需的基本配置选项。我假设您正在使用 MySQL,但这应该很容易适应任何数据提供者。
searchd {
/* Define your file paths. */
log = /path/to/project/sphinx/logs/searchd.log
query_log = /path/to/project/sphinx/logs/query.log
pid_file = /path/to/project/sphinx/logs/searchd.pid
/* Listen on port 9312 (This is the default port) */
listen = localhost:9312
}
这是基本的 searchd 配置,指定了诸如将日志写入何处以及要锁定的 .pid 文件之类的内容。搜索守护进程监听 9312 端口,sphinxapi 默认将其查询转发到该端口。
source text_search{
/* Data provider details */
type = mysql
sql_host = localhost
sql_user = sql_user_name
sql_pass = sql_pass_word
sql_db = my_db_name
/* The query used to index the data. A very basic example... */
sql_query = SELECT id, text_field, status FROM text_search
sql_attr_uint = status
}
这是数据来源。此处,indexer 将运行提供的查询并对结果进行索引。 id 被视为键,因为它是一个整数字段并且没有明确说明它是什么(与 status 字段不同)。由于 text_field 是一个文本字段(duh!),sphinx 索引它以隐式地进行全文搜索。我们还指定 status 是一个整数字段,稍后我们可以在执行搜索时使用它来过滤结果。
index text_search_index{
/* The data source that we have defined above. */
source = text_search
/* The path to store the index data/cache */
path = /path/to/project/data/text_search
/* Use stemming while searching */
morphology = stem_en
}
这定义了 searchd 将用于搜索的索引的详细信息。提供了数据来源。许多选项可用于根据您的需要定制结果。我仅提供了一个示例,其中我们指定 searchd 必须使用词干提取算法来匹配查询。可以通过阅读以下内容来收集所有可用选项的详细信息:
这还远远不够详细,但我希望这能帮助您入门...
关于php - sphinx api 基本设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29697913/
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
我在使用omniauth/openid时遇到了一些麻烦。在尝试进行身份验证时,我在日志中发现了这一点:OpenID::FetchingError:Errorfetchinghttps://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username:undefinedmethod`io'fornil:NilClass重要的是undefinedmethodio'fornil:NilClass来自openid/fetchers.rb,在下面的代码片段中:moduleNetclass
我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击
我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain
我在Rails应用程序中使用CarrierWave/Fog将视频上传到AmazonS3。有没有办法判断上传的进度,让我可以显示上传进度如何? 最佳答案 CarrierWave和Fog本身没有这种功能;你需要一个前端uploader来显示进度。当我不得不解决这个问题时,我使用了jQueryfileupload因为我的堆栈中已经有jQuery。甚至还有apostonCarrierWaveintegration因此您只需按照那里的说明操作即可获得适用于您的应用的进度条。 关于ruby-on-r
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"
我正在尝试为我的iOS应用程序设置cocoapods但是当我执行命令时:sudogemupdate--system我收到错误消息:当前已安装最新版本。中止。当我进入cocoapods的下一步时:sudogeminstallcocoapods我在MacOS10.8.5上遇到错误:ERROR:Errorinstallingcocoapods:cocoapods-trunkrequiresRubyversion>=2.0.0.我在MacOS10.9.4上尝试了同样的操作,但出现错误:ERROR:Couldnotfindavalidgem'cocoapods'(>=0),hereiswhy:U