问题标签 [zend-search-lucene]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
359 浏览

zend-framework - 几个 Lucene 问题

我一直在使用 Zend,需要搜索。Zend 文档不是很好,所以我有几个问题很容易回答,但不是很明显。我正在使用 Lucene 搜索 SQL 数据库

  1. 如何将我的项目的索引与该项目的文本相关联。因此,如果他们搜索并找到该项目,我如何返回其索引?据我所知,您只能返回搜索的文本。

  2. 当我将一个项目添加到包含所有数据的文档中,但该文档已经创建时,它只是一个 open('document'), $doc = new Doc(), $doc->addDocument(), commit( )?

  3. 我了解每次向数据库添加内容时都会更新 Lucene 文档。在优化中,我是否应该在每次添加某些内容时重新优化?那效率低吗?我应该每周做一次吗?

很抱歉问什么似乎很明显的问题,并提前感谢您的帮助。

0 投票
3 回答
2958 浏览

zend-search-lucene - Zend Lucene 使所有带有特殊字符的搜索失败

如果有人知道一个简单的答案,我就不必费力地创建一个带有转义字符串的额外索引,也不必在乱扔我漂亮的代码时哭得我的眼睛。

基本上,我们运行的 Lucene 搜索无法处理任何非字母字符。空格、百分号、圆点、破折号、斜线,应有尽有。这非常令人恼火,因为我无法对包含这些字符的项目进行任何搜索,无论我在哪里逃脱它们。

我有两个选择:在单独的索引中删除这些字符并将它们从我正在搜索的名称中删除或停止该死的搜索。

0 投票
1 回答
2351 浏览

php - 创建和更新 Zend_Search_Lucene 索引

我正在使用 Zend_Search_Lucene 创建文章索引,以便在我的网站上搜索它们。每当管理员在管理区域更新/创建/删除文章时,都会重建索引:

我的问题是这个。既然我正在重新索引文章并处理已删除的文章,为什么我不每次都使用“创建”(而不是“打开”和更新)?使用上述方法,我认为每次都会使用 addDocument 添加文章(因此会有重复)。我将如何防止这种情况?有没有办法检查索引中是否已经存在文档?

另外,我认为我不完全理解当您“打开”并更新它时索引是如何工作的。似乎每次都会在索引文件夹中创建新的#.cfs(所以我有_0.cfs、_1.cfs、_2.cfs)文件,但是当我使用“create”时,它会用新的#.cfs 覆盖该文件# 递增的文件(例如,仅 _2.cfs)。你能解释一下这些分段文件是什么吗?

0 投票
1 回答
349 浏览

zend-framework - Zend Lucene 行为不端:查询一个一个地工作,但不能一起工作

好的,这就是交易:Lucene 对我做了一些奇怪的事情。一切都正确索引,一切正常,一切都很快等等。

所以我用英语搜索一个类别。数以百计的结果弹出。

所以我用英语搜索一个国家。数百个结果弹出。

所以我用英语搜索一个类别和一个国家。我知道的组合是有效的。我得到杰克。没有什么。邮编……为什么?

$query->getQueryTerms() 返回一个有效的术语数组。没有错误。我到底做错了什么?

0 投票
1 回答
1070 浏览

php - Zend_Search_Lucene 查询解析问题

这是设置,我有一个 Lucene 索引,它适用于我索引的 2,000 个文档。我一直在使用 Luke (Lucene Index Toolbox, v.0.9.2) 来调试查询,并且正在使用 ZF 1.9。

我的 Lucene Index 的布局如下:

基本上我有一个可以通过上述字段搜索的表单,让您混合和匹配上述任何信息,并将其解析为 zend luceue 查询。这不是问题,问题是当我开始组合术语时,在查找中触发的“优化”方法会导致查询消失。

这是我现在正在运行的示例搜索:

表格版本

Lucene 查询解析

现在,如果我把这个查询字符串输入 LUKE,然后点击“搜索”,它会返回结果就好了。当我使用 Query Find 方法时,它会爆炸。所以我对它的功能做了一些研究,发现了一个问题(我相信)

首先,这是执行搜索的实际代码行:

它是实际代码的简化版本,但这就是它生成的内容。

现在这是我在调试后注意到的,“优化”方法只是破坏了查询本身。我创建了以下代码:

输出以下文本:

请注意第三个输出是如何完全为空的。查询上的重写和优化似乎导致查询字符串本身为空。

有谁知道为什么优化方法似乎只是一起删除了我的查询?我是否缺少可能需要解析的过滤器或某种接口?当我将所有查询粘贴到 LUKE 并手动针对索引运行它们时,所有查询都能完美运行,但是 Zend 解析查询以进行搜索的方式出现了一些愚蠢的问题。

任何帮助表示赞赏。

0 投票
1 回答
312 浏览

php - Zend Lucene 索引合并

刚刚将我的 PHP Web 应用程序迁移到具有新数据库的另一台服务器,现在我正在尝试将 Lucine 的索引迁移到新服务器。甚至可以将我的索引移动到另一台服务器吗?我们可以从另一台服务器(比如服务器 B)访问搜索索引(存储在一台服务器上,比如服务器 A)吗?如果是,那么我在哪里可以找到相关信息?

谢谢

0 投票
1 回答
273 浏览

zend-search-lucene - Zend_Search_Lucene - 如何将结果限制为某种语言?

我已经索引了一个有 14 种语言版本的网站,到目前为止一切都很好。现在我想将我的 lucene 搜索限制为仅以访问者的语言显示结果。

是否有任何(查询)参数或我可以设置的任何选项?不幸的是我什么也没找到。

如果这应该是相关的,我正在使用 Zend_Search_Lucene。

0 投票
1 回答
841 浏览

zend-framework - Zend_Search_Lucene 在数组中搜索

有没有办法将数组存储为文档字段然后查询该数组?

我有一组物品,这些物品都被标记了。我希望能够搜索所有匹配的项目,例如标签 55 和 67。

我将如何实现这一目标?

0 投票
2 回答
712 浏览

php - 如何调用 Zend lucene 搜索函数?

我继承了一个没有评论的 Zend 项目,也没有机会与之前的开发人员交谈。因为我没有 Zend 经验,所以我遇到了一些问题:)

我想在一个函数中打印出一些变量,该函数使用 Zend_Search_Lucene 对站点中的项目进行索引,因为我认为这里出了点问题。

根据我的阅读, ::create 创建一个新索引并 ::open 更新它。所以我想在这个 ::open 函数中打印出一些变量。

该函数的名称和参数如下。有谁知道如何调用这个函数以便我可以运行一些测试?

编辑:或者,有没有一种方法可以删除现有索引并强制它完全重建,例如通过删除 FS 上的索引文件然后执行一些搜索?

0 投票
1 回答
412 浏览

zend-framework - Zend:索引生成和 Zend_Search_Lucene 的优缺点

我以前从未遇到过像 Zend Search Lucene 这样的应用程序/类,因为我一直在查询我的数据库。

Zend_Search_Lucene 将文档作为索引的原子对象进行操作。一个文档被划分为命名字段,并且字段具有可以搜索的内容。

一个文档由 Zend_Search_Lucene_Document 类表示,并且这个类的这个对象包含 Zend_Search_Lucene_Field 的实例,这些实例表示文档上的字段。

需要注意的是,任何信息都可以添加到索引中。特定于应用程序的信息或元数据可以存储在文档字段中,然后在搜索期间与文档一起检索。

所以这基本上是说我可以将它应用于包括数据库在内的任何东西,这里的关键是为搜索创建索引。

我试图掌握的是我应该在我的应用程序中确切地将索引存储在哪里,例如我们将手机存储在数据库、制造商、型号中——我应该如何对索引进行分类?

如果我正在为用户创建索引,地址我显然不希望他们公开可见,我只是对这一切如何一起工作感到困惑,如果有已知的缺点,我在使用时应该知道的任何陷阱它。