2015-08-25 69 views
0

字符串与作者和他的书给出。索引中有两个字段:authortitle。我需要找到作者和标题匹配的所有书籍。 字符串可能只包含作者或仅包含标题,所以我无法解析它。如果我搜索Sphinxql:与字段匹配

SELECT id FROM books 
WHERE MATCH('@(author, title) "jane smiley horse heaven"); 

,我没有得到最相关的书的作者=“简笑脸”和标题=“马天堂”。

我需要这样的东西

SELECT id FROM books 
WHERE MATCH('@(title) "horse heaven" @(author) "jane smiley"'); 

,但没有分裂的字符串。

可能吗?

回答

1

MATCH('@(author,title)'jane smiley horse heaven'');

正在询问该确切短语(引号是短语操作符)。即文中连续的四个单词。正如你所说,不会真的匹配。

相反

MATCH('@(author,title) (jane smiley horse heaven)'); 

应该意味着它只是需要那些话。但在任何领域,并在技术上以任何顺序(所以可以匹配对“简天堂,马画笑脸”或任何;)

+0

我想,应该没有空间之间'匹配('@(作者,标题)' )',例如列名 – Novitoll

+0

斑点。是的,那里不应该有空间。我想可能有些版本的狮身人面像更宽容,但目前的版本不喜欢那个空间。 – barryhunter