【Django】服务器上haystack更改了引擎文件,还需要rebuild_index一次么?

1、在本地开发机上做好了django的全文搜索,但是部署到服务器的时候,忘记把本地开发机的whoosh_cn_backend和ChineseAnalyzer文件上传到服务器,报错后,我就又改回whoosh_backend,然后进行python manage.py rebuild_index,建立了索引

(结果:是可以搜索出结果,但不全)

 

2、后来记起来服务器上并没有whoosh_cn_backend和ChineseAnalyzer文件,然后把这两个文件上传到服务器目录里,settings.py里代码也改了,没有报错,但是搜索结果还是一模一样的。

 

问题:我只是更改的引擎文件,需要重新创建次索引么?    如果不需要重新建立索引,为什么搜索不全呢?   感谢各位老大答疑解惑

是的,你需要重新创建索引。因为更改了引擎文件后,索引文件的格式也会发生变化,之前建立的索引文件无法被新的引擎文件正确识别。

至于为什么搜索结果不全,可能有以下几个原因:

索引文件中没有包含所有的文档。你需要检查一下索引文件中是否包含了所有需要搜索的文档。

索引文件中没有正确的分词。你需要检查一下分词器的设置是否正确,是否包含了中文分词器。

搜索条件不正确。你需要检查一下搜索条件是否正确,是否包含了必要的搜索关键字。