首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >机箱全文查询语法

机箱全文查询语法
EN

Stack Overflow用户
提问于 2016-09-15 13:32:04
回答 1查看 133关注 0票数 0

我正在考虑从狮身人面像迁移到Crate,但是我找不到任何关于全文查询语法的文档。在狮身人面像中,我可以搜索:

代码语言:javascript
复制
("black cat" -catalog) | (awesome creature)

这代表了“黑猫”这两个确切的短语,在文档中没有“目录”一词,或者在文档中的任何位置都表示“令人敬畏”和“生物”。

代码语言:javascript
复制
black << big << cat

这就要求文档包含所有的“黑”、“大”和“猫”术语,还要求“黑色”的匹配位置小于“大”的匹配位置等等。

我需要在文件中的特定位置搜索。在斯芬克斯,我能够使用接近操作符,如下所示

代码语言:javascript
复制
hello NEAR/10 (mother|father -dear)

这就要求文档中包含“你好”和“母亲”或“父亲”这两个词最多不超过10个词,而“你好”和“亲爱的”也不能比10个词更接近“你好”。

在我的应用程序中,最后一个使用近距离的结构被大量使用。在箱子里有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-15 15:49:49

不幸的是,我不能评论它如何与狮身人面像相比,但我将坚持您的问题:)

板条箱全文搜索附带了SQL和Lucene的匹配功能,因此应该能够处理复杂的查询。我将只提供与您的输出相匹配的查询,我认为它应该是相当可读的。

(“黑猫”-catalog) (可怕的生物)

代码语言:javascript
复制
select * 
from mytable 
where 
  (match(indexed_column, 'black cat')  using phrase 
     and not match(indexed_column, 'catalog')) 
  or match(indexed_column, 'awesome creature') using best_fields with (operator='and');

黑色<<大<<猫

代码语言:javascript
复制
select * 
from mytable 
where 
  match(indexed_column, 'black big cat') using phrase with (slob=100000);

这是一个棘手的问题,似乎没有一个操作符与狮身人面像完全一样,但是它可以用一个"slop“值来调整。根据用例的不同,可能还有另一个(更好的)解决方案。

近邻你好/10(母亲-父亲-dear)

代码语言:javascript
复制
select * 
from mytable 
where 
  (match(indexed_column, 'hello mother')  using phrase with (slop=10)
     or match(indexed_column, 'hello father') using phrase with (slop = 10))
  and not match(indexed_column, 'hello dear') using phrase with (slop = 10)

与狮身人面像的语言相比,它们看起来可能有点笨重,但它们工作得很好:)

在性能上,他们仍然应该是超快的,多亏了Lucene..

干杯,克劳斯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39512415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档