首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >带重音的Zend_lucene搜索

带重音的Zend_lucene搜索
EN

Stack Overflow用户
提问于 2011-06-26 19:28:33
回答 1查看 856关注 0票数 1

我正在为一个法国网站的搜索引擎与Zend_Search_Lucene作为一个独立的组件。我的本地well服务器(WAMP)在windows上运行得很好,但带有重音的单词(如: géographie)的搜索在我的生产服务器(运行在Unix上)上不起作用。

我在Linux上生成了索引,重音单词的索引是正确的。

See a screenshot of my generated index here

我尝试用分析器的参数强制编码,用utf8_encode转换查询字符串。但我还是不能让它工作。

我用这些参数调用Lucene:

代码语言:javascript
运行
AI代码解释
复制
Zend_Search_Lucene_Search_QueryParser::setDefaultOperator(Zend_Search_Lucene_Search_QueryParser::B_AND);
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive());
Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8');

$index = Zend_Search_Lucene::open($cheminIndexes);
$resultats = $index->find(Zend_Search_Lucene_Search_QueryParser::parse(utf8_encode($_POST['recherche'])));

这段代码返回所有没有重音的单词,但它不会返回我的任何重音单词,尽管这些单词已被索引。这很令人沮丧,因为我不明白为什么它能在windows上工作,我觉得我在某个地方遗漏了一层编码,但我在google上找不到任何关于这方面的信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-26 19:42:46

我有一个网站设置与您的完全相同的选项(不敏感,utf-8,和)。但是,我过去常常通过以下方式创建索引对象:

代码语言:javascript
运行
AI代码解释
复制
$index = new Zend_Search_Lucene('/path/to/index');

而不是通过代理(就像您通过Zend_Search_Lucene::open的情况一样,但这不会有任何不同)。

此外,我只是将查询(在简短的健全性检查之后)直接传递给索引(不进行解析):

代码语言:javascript
运行
AI代码解释
复制
$query = $_GET['q'];
...
$results = $index->find($query);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6486185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档