问题标签 [full-text-indexing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2008 - SQL SERVER FULL-TEXT INDEX,CONTAINS 返回空
我有一个关于完整索引的问题,任何机构都可以帮助我吗?
1) 设置全文索引
2) 使用 CONTAINS 查找匹配的行
3) 一切顺利。只是返回空的结果集。而且我确信 Table Company 中有公司名称为“Microsoft”的公司
如果有人帮我这个忙,我将不胜感激。
sql-server - 将 Lucene 或任何其他搜索产品与 SQL Server 2005 集成
我需要在 SQL Server 2005 中使用全文搜索,并且我已经探索了它的内置搜索方法(SQL Server 全文索引),但它似乎没有那么强大。
我还查看了 Lucene 的功能。
现在我的问题是:是否可以集成 Lucene 和 SQL 服务器?
- 我的 T-SQL 查询可以使用 Lucene 索引来返回结果吗?(可能在内部使用基于 CLR 的函数)
- 如何在表中的数据更新时更新 Lucene 索引
- 什么可以是整体架构?
- 是否有任何商业产品可以提供这种支持?
谢谢,HB
sql-server - 如何使用 CONTAINS 添加更多 OR 搜索将查询带入抓取?
我有一个简单的查询,它依赖于两个全文索引表,但是当我将CONTAINS与任何其他OR搜索结合使用时,它的运行速度非常慢。从执行计划中可以看出,两次全文搜索压垮了性能。如果我只使用 1 个 CONTAINS 进行查询,或者两者都不查询,则查询是亚秒级的,但是当您将OR添加到组合中时,查询将变得命运多舛。
这两张表没有什么特别之处,它们并不太宽(一张有 42 列,另一张有 21 列;每个列中可能有 10 列被 FT 索引),甚至包含非常多的记录(两者中最大的有 36k 条记录)。
我能够通过将两个CONTAINS搜索拆分为它们自己的SELECT查询然后将这三个合并在一起来解决性能问题。这个 UNION 解决方法是我唯一的希望吗?
执行计划:
sql-server - 告诉我 SQL Server 全文搜索器疯了,不是我
我有一些客户具有用户正在搜索的特定地址:
123 通用方式
数据库中有 5 行匹配:
我运行 FT 查询来查找这些行。当我向搜索添加更多条件时,我将向您展示每个步骤:
好的,到目前为止一切顺利,现在添加“通用”一词:
优秀的。现在我将添加用户想要确保存在的最终关键字:
嗯?没有行?如果我只查询“way*”怎么办:
起初我认为可能是因为*
, 并且它要求根way
后面有更多字符。但这不是真的:
- 搜索“123*”匹配“123”
- 搜索“generic*”匹配“generic”
- 在线书籍说,星号匹配零个、一个或多个字符
如果我删除*
just for s&g 怎么办:
因此,有人可能会认为您甚至不允许单独或作为根进行搜索。way
但这也不是真的:
综上所述,用户正在搜索包含所有单词的行:
123 通用方式
我正确地翻译成WHERE
条款:
它不返回任何行。告诉我这行不通,这不是我的错,而且 SQL Server 很疯狂。
注意:我已经清空了 FT 索引并重建了它。
更新一
更新二
假装用户输入:
第 123 章
真正的问题是用户正在输入完全有效的内容,他们希望看到任何人都希望看到的内容。
更新三
有人要求这一切,这不是我的错!:
这是不相信我的人的屏幕截图:
应该有效但无效的查询:
有效但无用的查询:
有效但无用的查询,带有证明内容:
更新四
查询不能写成
因为有些项目在逻辑上或物理上没有被 FT 索引覆盖。例如,用户查询:
6/4/2010 伊恩博伊德 619
提出四个关键词:
- 2010 年 6 月 4 日
- 伊恩
- 博伊德
- 619
这意味着他们希望所有条件都成立,伪代码为:
这被翻译成部分查询:
其中一位回答者正在查看原始问题中提供的简化示例;不是现实世界。要说有多个从句是不正确的,那是不正确的。AND
php - FULLTEXT 搜索(Mysql)第一次很慢,然后从第二次开始它变得更快
我有一个包含 4000 条记录的表(通过全文搜索更容易处理)。当第一次执行搜索查询时,速度要慢得多。大约需要 5 到 10 秒。然后它变得更快。如果站点在 10 或 15 分钟内保持非活动状态,并且当我尝试再次执行查询时,它会变慢。
我正在使用 mysql+PHP。我想这是缓存问题。我们的网站托管在我无法访问缓存的第三方服务器中。
我的问题有什么解决方法吗。
提前致谢!
编辑:
你好,谢谢你的回复。这是我的查询。
从 PRODUCT_2_CATEGORY、PRODUCT、MERCHANT 中选择 PRODUCT_2_CATEGORY.PRODUCT_ID,其中 PRODUCT_2_CATEGORY.PRODUCT_ID = PRODUCT.ID AND PRODUCT.PRO_STATUS='active' AND PRODUCT.MERCHANT_ID = MERCHANT.ID AND MERCHANT.M_STATUS='active' AND (CAT_ID='1' OR CAT_ID='1004' OR CAT_ID='1005' OR CAT_ID='1006' OR CAT_ID='1007' OR CAT_ID='1008' OR CAT_ID='1002' OR CAT_ID='1003' OR CAT_ID='45' OR CAT_ID= '46' 或 CAT_ID='74' 或 CAT_ID='75' 或 CAT_ID='76' 或 CAT_ID='49' 或 CAT_ID='50' 或 CAT_ID='77' 或 CAT_ID='78' 或 CAT_ID='79 ' OR CAT_ID='80' OR CAT_ID='81' OR CAT_ID='82' OR CAT_ID='83' OR CAT_ID='84' OR CAT_ID='47' OR CAT_ID='89' OR CAT_ID='51'或 CAT_ID='52' 或 CAT_ID='88' 或 CAT_ID='87' 或 CAT_ID='86' 或 CAT_ID='85' 或 CAT_ID='48' 或 CAT_ID='53' 或 CAT_ID='54' 或 CAT_ID ='90' OR CAT_ID='200' OR CAT_ID='91' OR CAT_ID='92' OR CAT_ID='93' OR CAT_ID='94' OR CAT_ID='11' OR CAT_ID='95' OR CAT_ID=' 98' 或 CAT_ID='99' 或 CAT_ID='100' 或 CAT_ID='101' 或 CAT_ID='96' 或 CAT_ID='102' 或 CAT_ID='103' 或 CAT_ID='104' 或 CAT_ID='105' OR CAT_ID='106' OR CAT_ID='97' OR CAT_ID='107' OR CAT_ID='108' OR CAT_ID='109' OR CAT_ID='110' OR CAT_ID='114' OR CAT_ID='119' OR CAT_ID ='120' 或 CAT_ID='121' 或 CAT_ID='115'OR CAT_ID='122' OR CAT_ID='123' OR CAT_ID='124' OR CAT_ID='125' OR CAT_ID='116' OR CAT_ID='127' OR CAT_ID='128' OR CAT_ID='129' OR CAT_ID ='117' OR CAT_ID='130' OR CAT_ID='131' OR CAT_ID='118' OR CAT_ID='111' OR CAT_ID='132' OR CAT_ID='136' OR CAT_ID='137' OR CAT_ID=' 138' 或 CAT_ID='139' 或 CAT_ID='140' 或 CAT_ID='133' 或 CAT_ID='141' 或 CAT_ID='142' 或 CAT_ID='143' 或 CAT_ID='144' 或 CAT_ID='145'或 CAT_ID='146' 或 CAT_ID='134' 或 CAT_ID='147' 或 CAT_ID='148' 或 CAT_ID='149' 或 CAT_ID='150' 或 CAT_ID='151' 或 CAT_ID='135' 或 CAT_ID ='152' 或 CAT_ID='153' 或 CAT_ID='154' 或 CAT_ID='155' 或 CAT_ID='156' 或 CAT_ID='64' 或 CAT_ID='158' 或 CAT_ID='70' 或 CAT_ID='164' 或 CAT_ID='71' 或 CAT_ID='165'或 CAT_ID='159' 或 CAT_ID='166' 或 CAT_ID='167' 或 CAT_ID='168' 或 CAT_ID='169' 或 CAT_ID='160' 或 CAT_ID='73' 或 CAT_ID='170' 或 CAT_ID ='172' OR CAT_ID='173' OR CAT_ID='174' OR CAT_ID='161' OR CAT_ID='175' OR CAT_ID='176' OR CAT_ID='177' OR CAT_ID='178' OR CAT_ID=' 162' 或 CAT_ID='179' 或 CAT_ID='180' 或 CAT_ID='181' 或 CAT_ID='182' 或 CAT_ID='183' 或 CAT_ID='163' 或 CAT_ID='184' 或 CAT_ID='192'或 CAT_ID='191' 或 CAT_ID='190' 或 CAT_ID='189' 或 CAT_ID='188' 或 CAT_ID='187' 或 CAT_ID='186' 或 CAT_ID='185' 或 CAT_ID='193' 或 CAT_ID='112' 或 CAT_ID='113' 或 CAT_ID='65' OR CAT_ID='66' OR CAT_ID='67' OR CAT_ID='68' OR CAT_ID='69') AND MATCH(PRODUCT.TITLE) AGAINST('shirt' IN BOOLEAN MODE) ORDER BY PRODUCT.TITLE ASC LIMIT 0, 12
我们的网站托管在第三方网络服务器(Plesk 控制面板)上。所以,我不确定是否可以安装其他软件。
我们的网站是 2010.shoppingstrip.com.au。当您搜索某些内容时,将执行此查询。
谢谢
search - SOLR 中的 EdgeNGramTokenizerFactory EdgeNGramFilterFactory 有什么区别?
这两个过滤器有什么区别?它们似乎具有相同的效果?
谁能提供一个如何将它们应用于某些文本的示例?
mysql - MySQL全文查询锁定表
每隔一段时间,我们就会在 MySQL 中得到一个运行时间特别长的全文查询。该查询将运行很长时间,目前我看到一个运行了 50,000 秒(并且仍在运行)的查询。对查询使用 Kill 或 Kill Query 似乎无济于事。另外,客户端的命令超时时间是30秒,所以客户端已经失败了,离开了,但是服务器一直在运行查询,消耗了相当多的资源。过去,我们必须重新启动 MySQL 服务才能让此类查询停止运行。有没有其他方法可以阻止这些查询。我们正在采取措施确保查询不会首先运行,但它们仍然会每隔一段时间运行一次,这是一个很大的痛苦。主要是因为在查询运行时,我们无法对表执行更新。
一个长时间运行的查询的例子是这样的:
由于 * 在搜索字符串的中间以及字符串的末尾,因此运行时间特别长。
java - 如何使用 Lucene 获取频繁出现的短语
我想用 Lucene 获得一些经常出现的短语。我从 TXT 文件中获取了一些信息,并且由于没有短语信息,例如“信息检索”被索引为两个单独的单词,我失去了很多上下文。
获得这样的短语的方法是什么?我在互联网上找不到任何有用的东西,感谢所有建议、链接、提示,尤其是示例!
编辑:我只按标题和内容存储我的文件:
因为对于我所做的最重要的是文件的内容。标题通常根本不是描述性的(例如,我有许多 PDF 学术论文的标题是代码或数字)。
我迫切需要从文本内容中索引出现最多的短语,刚才我看到这种简单的“词袋”方法效率不高。
sql-server-2005 - 全文索引多种语言
我的数据库以三种语言(英语、法语和阿拉伯语)存储内容 我为几个表启用了全文索引,并且想了解一些最佳实践:
1. 什么时候向我展示语言中性索引?
2. 我可以索引阿拉伯语吗?我在可索引语言中看不到阿拉伯语!
3. 我应该为每种语言设置单独的索引吗?(我的每个元组都有这三种语言)
欢迎任何想法和建议。
mysql - 与用于 Django 搜索的 Solr 相比,MyISAM 的扩展性如何?
想象一下,您有一个用 Django 和 Python 2.65 编写的 Web 应用程序,而 MySQL 5.1 是您选择的数据库。
现在,假设您需要扩展您的应用程序以处理搜索成千上万的文档,并且可能有成千上万的用户将使用它。
现实:在上述情况下,带有 PySolr 和 Solr 1.4.0 的 Haystack 1.0 被证明是缓慢的。MyISAM 是一个更可行的替代方案,还是我应该花更多时间以“更智能”的方式使用 Solr 处理我当前的配置?
建议?尖端?
感谢您的任何帮助!米肖