标签: full-text-indexing

SOLR中的EdgeNGramTokenizerFactory EdgeNGramFilterFactory有什么区别?

这两个过滤器有什么区别?他们似乎有同样的效果?

任何人都可以提供一些如何应用于某些文本的示例吗?

search solr tokenize full-text-indexing n-gram

2
推荐指数
1
解决办法
1525
查看次数

在搜索电子邮件地址时,MySQL MATCH AGAINST

我正在编写新闻稿脚本,我需要在地址中实现搜索.我使用FULLTEXT索引表,但是当我执行查询时,例如:

SELECT * FROM addresses WHERE MATCH(email) AGAINST("name@example.com" IN BOOLEAN MODE)
Run Code Online (Sandbox Code Playgroud)

我得到了奇怪的结果.它显示"example.com"上的所有电子邮件以及用户"name"的所有电子邮件.比如我得到:

john@example.com
name@mail.net
steven@example.com
Run Code Online (Sandbox Code Playgroud)

我重写了查询以使用LIKE"%name@example.com%",但对于一个大表,它需要花费大量的时间才能完成.这有解决方案吗?我想在搜索时只显示完整匹配的电子邮件而不是其中的一部分.先感谢您.

mysql sql full-text-search full-text-indexing

2
推荐指数
1
解决办法
5017
查看次数

#1191 - 找不到与列列表匹配的FULLTEXT索引

我试图在我的xampp中执行此查询,但它没有出现.

SELECT pid,description,alttext FROM wp_ngg_pictures WHERE MATCH 
(description, filename, alttext) AGAINST ('*image2*' IN BOOLEAN MODE) AND exclude != 1
Run Code Online (Sandbox Code Playgroud)

它已经返回了这个错误

 #1191 - Can't find FULLTEXT index matching the column list.
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我

php xampp full-text-indexing

2
推荐指数
1
解决办法
1万
查看次数

ElasticSearch,Logstash,MySQL:如何加速大量导入?

我正在尝试将大型(~30M行)MySQL数据库导入ElasticSearch.酷酷的,有一个logstash看起来像是为这类东西而建的工具; 它的JDBC插件可以让我连接到数据库,并快速实现行.

然而!当我尝试它时,它会爆炸java.lang.OutOfMemoryError.好的.它可能试图批量过多行或其他东西.所以我添加jdbc_fetch_size => 1000到我的配置.没有骰子,仍然没有记忆.好吧,也许这个选项不起作用,或者没有按照我的想法行事?

所以我尝试添加jdbc_paging_enabled => truejdbc_page_size => 10000我的配置.成功!它开始以10k的批量向我的索引添加行.

但它放慢了速度.起初我跑100k行/分钟; 然而,当我在2M行时,我可能只有十分之一.并不奇怪; 我很确定这是使用LIMIT和OFFSET,并且在查询中使用大量OFFSET非常慢,所以我在这里处理O(n ^ 2)类的事情.

我真的很想只运行整个大查询并让游标迭代结果集,但看起来它因某些原因无效.如果我对查询有更多的控制权,我可以将LIMIT/OFFSET的东西更改为WHERE id BETWEEN val1 AND val2某种东西,但我无法看到我可以在哪里做到这一点.

关于我怎么不能崩溃,但仍以合理的速度运行的任何建议?

mysql full-text-indexing elasticsearch logstash

1
推荐指数
1
解决办法
722
查看次数

“查询无法理解” - 字段类型已更改的全文搜索

客户有一个长期存在的 IBM Notes 应用程序,其中有人将字段的类型从数字更改为文本。

因此,现在当我们尝试进行 FT 搜索时,例如:[myField] = "1234" 收到错误消息:“查询无法理解”。

如果我这样做: [myField] = 1234 它可以工作但不会返回任何命中。即使有一个文档,其中 myField = "1234"。

该字段是设计中的文本类型。

我创建了一个用于测试的新视图,只允许来自一种表单的文档。

删除全文索引(甚至在文件系统上) updall -X Fixup -r 创建全文索引

在我的测试视图中,我有一列显示正在搜索的字段内容是否为文本类型 @IsText(myField) 并且所有行都显示:1(因此它的字段内容必须是文本)

以上都没有奏效,所以我在本地创建了一个新的数据库副本。同样的问题。

创建了一个全新的数据库(仅用于测试)、表单、视图和全文索引,并且有效。

感觉现有的数据库设计某处存储旧的字段类型......

任何想法表示赞赏。

谢谢!

/J

full-text-search lotus-notes full-text-indexing lotus-domino

0
推荐指数
1
解决办法
2757
查看次数

如何向现有 FULLTEXT 索引添加列?

我在 MySql 数据库中的一个表上创建了一个 FULLTEXT 索引,并在我这样做时遗漏了一列。我一直在尝试弄清楚如何添加此列,以便可以与此表中已编入索引的其他列一起对其进行搜索。

我已经搜索过 SO 和网络,但一无所获。我尝试进入 phpMyAdmin,当您单击表格然后查看结构时,一直在右侧有一个下拉菜单,上面写着“更多”。这有一个“全文”选项,似乎向列添加全文索引,所以我这样做了,但它仍然不允许我搜索列。

我是否在此列中添加了 FULLTEXT?无论哪种方式,我如何才能让它发挥作用?

php mysql innodb full-text-indexing

0
推荐指数
1
解决办法
2104
查看次数