【问题标题】:Is it possible to perform a fulltext index search in boolean mode and with query expansion?是否可以在布尔模式和查询扩展中执行全文索引搜索?
【发布时间】:2012-01-30 17:53:38
【问题描述】:

我想知道是否甚至可以(例如通过嵌套的 sql 查询)对使用 IN BOOLEAN MODE 运行的 FULLTEXT INDEX 搜索的结果执行 WITH QUERY EXPANSION。

这不起作用,但也许它会帮助解释我在寻找什么:

SELECT * FROM (SELECT * FROM indexed_table AS x WHERE MATCH(x.ind_col) 
AGAINST('(+word1 +word2 +word3) (+word1 +word4) (+word2 +word4)' IN BOOLEAN MODE))x 
WHERE MATCH(ind_col) AGAINST('word1 word2' WITH QUERY EXPANSION);

澄清一下:我正在尝试对第一个 MATCH..AGAINST(“IN BOOLEAN MODE”)的结果使用第二个 MATCH..AGAINST(“WITH QUERY EXPANSION”)。

【问题讨论】:

    标签: mysql full-text-search


    【解决方案1】:

    您当然可以在单个 WHERE 子句中使用多个 MATCH 语句,如果满足您的要求,只需将它们组合在一起即可。

    这对你有用吗?

    SELECT * 
    FROM indexed_table 
    WHERE MATCH(ind_col) AGAINST('(+word1 +word2 +word3) (+word1 +word4) (+word2 +word4)' IN BOOLEAN MODE)
    AND MATCH(ind_col) AGAINST('word1 word2' WITH QUERY EXPANSION);
    

    【讨论】:

    • 不幸的是,没有。我想在第一个结果上运行第二个 MATCH..AGAINST。我会更新问题的详细信息。
    【解决方案2】:

    您应该能够通过以下方式做到这一点:

    SELECT * FROM (
        SELECT * FROM `indexed_table` WHERE MATCH(ind_col) against ('(+word1 +word2 +word3) (+word1 +word4) (+word2 +word4)' IN BOOLEAN MODE)
    ) AS x WHERE MATCH(ind_col) against ('word1 word2' WITH QUERY EXPANSION)
    

    【讨论】:

      猜你喜欢
      • 2010-09-12
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      • 2016-07-26
      相关资源
      最近更新 更多