我正在建立一个Django网站,我正在寻找一个搜索引擎.
一些候选人:
Lucene/Lucene与Compass/Solr
狮身人面像
Postgresql内置全文搜索
MySQl内置全文搜索
选择标准:
任何有上述搜索引擎经验的人,或者不在列表中的其他引擎 - 我很想听听你的意见.
编辑:至于索引需求,当用户不断将数据输入网站时,这些数据需要连续编入索引.它不一定是实时的,但理想情况下,新数据会出现在索引中,延迟时间不超过15-30分钟
将用户输入的搜索词转换为可用于where子句进行全文搜索以查询表并获取相关结果的查询的最佳方法是什么?例如,用户输入以下查询:
+"e-mail" +attachment -"word document" -"e-learning"
Run Code Online (Sandbox Code Playgroud)
应该翻译成:
SELECT * FROM MyTable WHERE (CONTAINS(*, '"e-mail"')) AND (CONTAINS(*, '"attachment"')) AND (NOT CONTAINS(*, '"word document"')) AND (NOT CONTAINS(*, '"e-learning"'))
Run Code Online (Sandbox Code Playgroud)
我目前正在使用查询解析器类,它使用正则表达式将用户输入的查询解析为标记,然后从标记构造where子句.
但是,鉴于这可能是许多使用全文搜索的系统的常见要求,我很好奇其他开发人员如何处理这个问题,以及是否有更好的做事方式.