Lucene外来字符问题

2024-05-04

我在使用 Zend_Lucene 和 åäö 等外来字符时遇到了一些严重的问题。这些问题在创建索引和查询索引时都会出现。我已经尝试过 iso-8859-1 和 utf-8。

ISO-8859-1

不起作用的查询看起来像“+_area:skåne“。使用 Zend_Lucene 我没有得到任何匹配项,但是如果我在 Luke 中运行此查询,我会得到许多匹配的文档。

该索引包含 20 个字段。使用以下语法添加“_area”字段:

$doc->addField(Zend_Search_Lucene_Field::keyword('_area', strtolower($item['area']), 'iso-8859-1')); 

我正在使用Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive分析仪。

运行索引时,有时会出现以下错误消息(索引的文档是从 ISO-8859-1 编码的数据库中随机选择的)

注意: iconv():在 TextNum.php 的输入字符串中检测到非法字符。

通过检查 $this->_input 是否为空来“解决”这个问题,因为这似乎导致了通知。注意:奇怪的查询结果是预先存在的条件。

当我使用外来字符搜索关键字字段时,我收到上述错误,但当我搜索文本字段时,它的行为有所不同。然后它会生成下面大约一百个错误。

注意:\Zend\Search\Lucene\Search\Query\MultiTerm.php 第 472 行中未定义偏移量:1996

但它产生了看起来正确的结果集!附带说明一下,第二个查询不会在 Luke 中生成任何结果。

UTF-8

我还尝试过 UTF-8,因为据我所知,Zend_Lucene 在内部使用它。由于数据集是 ISO-8859-1,我使用它进行转换utf8_encode。但索引会产生以下错误。

注意:未定义的偏移量:266979 in \Zend\Search\Lucene\Index\SegmentInfo.php 632号线

注意:试图获得以下财产 非对象在 \Zend\Search\Lucene\Index\SegmentMerger.php 196号线

注意:试图获得以下财产 非对象在 \Zend\Search\Lucene\Index\SegmentMerger.php 200号线

注意:未定义索引:in \Zend\Search\Lucene\Index\SegmentWriter.php 231号线

注意:试图获得以下财产 非对象在 \Zend\Search\Lucene\Index\SegmentWriter.php 231号线

注意:未定义的偏移量:250595 in \Zend\Search\Lucene\Index\SegmentInfo.php 2020年上线

注意:试图获得以下财产 非对象在 \Zend\Search\Lucene\Index\SegmentInfo.php 2020年上线

注意:未定义索引:in \Zend\Search\Lucene\Index\SegmentWriter.php 465号线 ...


所以。有人可以解释一下吗? :) 我相信(经过几天的谷歌搜索)我不是唯一经历过这种情况的人。


我建议你尝试使用UTF-8 兼容文本分析器 http://framework.zend.com/manual/en/zend.search.lucene.charset.html#zend.search.lucene.charset.utf_analyzer。 您使用的分析器似乎破坏了非 ASCII 字符。 您应该确保文本输入正确,并且它以正确的格式到达 Lucene。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Lucene外来字符问题 的相关文章

  • php 崩溃后 mysql 表被锁定

    我有一个 MySQL DB 和一个 innoDB 表 我有一个 php 页面 用于连接 锁定表 进行一些更新 然后解锁表 PHP 页面通过 wamp 与 apache 一起提供 php页面将文件上传到数据库 我决定通过上传一个大小大于分配给
  • 很好地阻止了齿轮工人

    我有许多 Gearman 工作人员不断运行 保存用户页面浏览记录等内容 偶尔 我会更新 Gearman 工作人员使用的 PHP 代码 为了让工作人员切换到新代码 我杀死并重新启动了工作人员的 PHP 进程 有什么更好的方法来做到这一点 据推
  • PDO::commit() 成功或失败

    The PHP PDO 提交 http www php net manual en pdo commit php文档指出该方法成功时返回 TRUE 失败时返回 FALSE 这是指beginTransaction 和commit 之间的语句执
  • 从文本块中提取相关标签/关键字

    我想要一个特定的实现 以便用户提供如下文本块 要求 使用 Linux Apache 2 的 LAMP 环境的工作知识 MySQL 5 和 PHP 5 Web 2 0 标准知识 熟悉 JSON 使用框架 Zend OOP 的实践经验 跨浏览器
  • header() 错误未在 php 中显示

    我写了一个PHP程序 我用session start and header 函数 我知道在向客户端发送任何内容之前应该使用此函数 没关系 但是为了测试 我向客户端发送了一条测试消息echo test 在使用 header 之前 但我没有收到
  • 使用 strtotime() 计算时间差(以小时和分钟为单位)[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions time1
  • PMA 4.5.2.0 file_exists():open_basedir 限制生效

    从 PPA 在我的 Ubuntu 服务器上安装 phpMyAdmin 后 https launchpad net nijel archive ubuntu phpmyadmin https launchpad net nijel archi
  • PHP mail() 函数不发送邮件

    我有一个小问题 我正在使用一个工作脚本 在我的测试帐户 共享服务器上工作 使用 mail 函数通过 PHP 发送邮件 我刚刚得到了一个专用服务器 但我还无法让该功能发挥作用 在过去的 10 个小时左右的时间里 我阅读了有关 BIND 用于
  • 更新重复密钥上的复合密钥 [重复]

    这个问题在这里已经有答案了 我需要更新新行 如果两者都满足 date dat and empId who 作为复合键 但如果其中之一或两者不同 则插入 sql INSERT INTO history SET endtimestamp now
  • PHP上传文件产生错误代码4。为什么?

    HTML
  • 从twitter api实体参数php获取图像url

    我正在尝试通过实体参数使用 php 获取并显示在推文中发布的图像 我的 url 中有 include entities 可以看到返回的 json 中的实体 在我的 foreach 循环中 我正在执行以下操作 foreach results
  • 如何比较两个字符串的大小写和变音符号不敏感?

    我有两根弦 字符串 1 塞巴斯蒂安 字符串 2 塞巴斯蒂安 我想通过忽略 重音 字符来比较这两个字符串 谁能知道这个逻辑吗 提前致谢
  • PHP:如何防止不必要的换行

    我正在使用 PHP 创建一些基本的 HTML 标签始终相同 但实际链接 标题对应于 PHP 变量 string p a href strong i title i i strong a br echo string fwrite outfi
  • Facebook 中用户的时区是如何编码的

    我需要检查用户的时区 但我找不到它的真正定义 参考API http developers facebook com docs reference api user says 用户的时区与 UTC 的偏移量 现在在维基百科上这些是可能的时区
  • 如何读取 XML 文件并从中获取值以在 PHP 编码的 HTML 页面中显示

    我有一个 XML 文件 其中有一些重复的标签 其中包含不同的值 我需要获取这些值并显示在我的网页中 请帮助我得到这个 如果您使用 PHP5 可以查看 SimpleXML 您可以在这里找到介绍教程 http www w3schools com
  • DOMPDF - 未找到“字体”类

    我正在尝试通过命令行添加字体 每次我尝试都会收到以下错误 Fatal error Class Font not found in home scripts public html MarketingPalv2 load font php o
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • laravel 5.4 在请求验证之前修改数据[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我有我的自定义请求 它扩展了 Backpack CrudController 现在我想重写 ValidatesWhenResolv
  • 隐藏产品价格和添加到购物车按钮,但不隐藏 WooCommerce 中未注册用户的变体

    在我的 WooCommerce 商店中 我想隐藏价格 直到客户登录为止 我有以下代码可以实现这一点 add action init hide price function hide price if is user logged in re
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015

随机推荐