Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Zend_Lucene中将数字处理为单词和数字(“一”对“1”)_Php_Search_Lucene_Alias - Fatal编程技术网

Php 如何在Zend_Lucene中将数字处理为单词和数字(“一”对“1”)

Php 如何在Zend_Lucene中将数字处理为单词和数字(“一”对“1”),php,search,lucene,alias,Php,Search,Lucene,Alias,我有一篇新闻文章的内容,它正在使用Lucene进行索引,并在PHP中使用Zend_Lucene进行查询 内容经常提及英国电视频道,如BBC One,但我知道我们的用户通常会输入BBC 1或BBC1搜索词,而不是BBC One 是否有任何标准的方法来处理这个数字作为单词与数字作为数字搜索问题 我的选择似乎是在看到数字时修改搜索词,例如,我将BBC1的搜索词更改为BBC 1或类似的搜索词,或者修改索引内容,将数字转换为单词,反之亦然,两个版本都存储在索引中。请参阅此lucene常见问题解答条目,建议

我有一篇新闻文章的内容,它正在使用Lucene进行索引,并在PHP中使用Zend_Lucene进行查询

内容经常提及英国电视频道,如BBC One,但我知道我们的用户通常会输入BBC 1或BBC1搜索词,而不是BBC One

是否有任何标准的方法来处理这个数字作为单词与数字作为数字搜索问题


我的选择似乎是在看到数字时修改搜索词,例如,我将BBC1的搜索词更改为BBC 1或类似的搜索词,或者修改索引内容,将数字转换为单词,反之亦然,两个版本都存储在索引中。

请参阅此lucene常见问题解答条目,建议使用标记过滤器提供单词的别名/别名:

:

据我所知,Lucene不提供支持术语别名的标记器,但您应该能够自己编写一个。您只需编写一个接受字对映射并使用它将第一个字映射到第二个字的TokenFilter

同样,确保在索引和搜索期间使用相同的分析器,不要忘记将代码提交到Lucene项目,以便其他人也可以使用它;-

这是较旧的信息,现在可能更舒服,但可能值得一提