- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
8年前关闭。
Improve this question
我聘请了一位 db 顾问,他一直建议使用 solr 来处理我当前完全 mysql 系统的全文搜索方面,以加快通常很慢的搜索速度(每次搜索最多 30 秒)。
他/我们的大部分时间都花在了 a) 调整 mysql 设置以挤出额外的性能,以及 b) 安装 solr。然而,现在我们已经接近尾声,前几个 solr 测试查询似乎失败了。
首先,这是我当前完全 Mysql 设置的相关 3 个表,以及我们试图用 MySQL/Solr 方法替换的完全 MySQL 查询。然后是我们正在测试的 Solr 查询。
表 1 - 存储全文搜索记录的主表。它们由songID 列、Artist 列和Title 列组成。 INDEXES - songID primary、Artist Fulltext(非唯一)、Artist btree(非唯一)、Title Fulltext(非唯一)、Title btree(非唯一)
表 2 - 用于存储 DJ 歌曲列表。它引用了上表的 ID。一些 DJ 有 150,000 多首歌曲,因此这里有 150,000 多行引用表 1 中的歌曲。 TABLE2 也有一个 ID 列,加上一个歌曲版本列(命名版本),因此 DJ 可以将自己的版本引用应用于同一首歌曲的多个版本(即同一首歌曲的多行,每行具有不同的版本数据)。 INDEXES - ID primary,djID btree(非唯一),songID btree(非唯一)。
表 3 - 一个标签映射表,它包含对 TABLE2 中 ID 的引用和标签的 ID(在另一个名为 TAGS 的表中)。它将每首歌曲的标签存储在 TABLE2 中,用于流派、语言、年代,此外 DJ 可以有多个歌曲列表(标记为 List1、List2 等),因此引用每首歌曲所属的歌曲列表。潜在地,每个 DJ 每首歌曲最多可以有大约 12 个标签。 INDEXES - rowID primary,ID btree(非唯一),tag_id(非唯一)
这是艺术家关键字“beatles”的当前 mysql 搜索查询,唯一涉及的标签是告诉我们只选择 DJ 33 的 List1 中歌曲的匹配项:
"SELECT t1.*, t2.version
FROM table1 t1, table2 t2, tagmap tm, tag t
WHERE MATCH (t1.Artist) AGAINST ('+beatles* ' IN BOOLEAN MODE)
AND tm.tag_id = t.tag_id
AND (t.name IN ('List1'))
AND t2.ID = tm.ID
AND t2.songID = t1.songID
AND t2.djID = '33'
GROUP BY t2.ID
HAVING COUNT( tm.tag_id )=1
ORDER BY t1.Artist, t1.Title ASC LIMIT {$lastRowNum},{$limit1}";// pagination blah
最佳答案
我建议您使用 Solr,但实现方式略有不同。
您所有的数据库规范化都适用于事务系统(即添加歌曲、创建播放列表等)
搜索在非规范化数据结构上效果最好。您可以只创建一个表示您的搜索结果的 Solr 模式并使用 SQL 查询填充它。
查询仍然效率低下,但它不需要在每次搜索时都运行(即实时)。相反,您可以每晚批量填充索引,并在歌曲/播放列表等发生变化时进行滴流变化。
我在这个 here 上写了一些东西.希望这可以帮助。
关于php - 这个系统有什么更好的 solr 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19579815/
我有这个代码: System.err.print("number of terms = "); System.out.println(allTerms.size()); System.err
我有以下问题:在操作系统是 Linux 的情况下和在操作系统是 MacOs 的情况下,我必须执行不同的操作。 所以我创建了以下 Ant 脚本目标: /u
我正在调用 system("bash ../tools/bashScript\"This is an argument!\"&"),然后我正在调用 close(socketFD) 直接在 system
使用最初生成的随机元素来约束随机数组的连续元素是否有效。 例如:我想生成一组 10 个 addr、size 对来模拟典型的内存分配例程并具有如下类: class abc; rand bit[5:0
我正在创建一个必须使用system(const char*)函数来完成一些“繁重工作”的应用程序,并且我需要能够为用户提供粗略的进度百分比。例如,如果操作系统正在为您移动文件,它会为您提供一个进度条,
我即将编写一些项目经理、开发人员和业务分析师会使用的标准/指南和模板。目标是更好地理解正在开发或已经开发的解决方案。 其中一部分是提供有关记录解决方案的标准/指南。例如。记录解决/满足业务案例/用户需
在开发使用压缩磁盘索引或磁盘文件的应用程序时,其中部分索引或文件被重复访问(为了论证,让我们说一些类似于 Zipfian 分布的东西),我想知道什么时候足够/更好地依赖操作系统级缓存(例如,Debia
我们编写了一个 powershell 脚本,用于处理来自内部系统的图像并将其发送到另一个系统。现在,业务的另一部分希望加入其中,对数据进行自己的处理,并将其推送到另一个系统。打听了一下,公司周围有几个
我正在尝试朗姆酒我的应用程序,但我收到以下错误:System.Web.HttpUnhandledException:引发了“System.Web.HttpUnhandledException”类型的异
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
所以我在其他程序中没有收到此错误,但我在这个程序中收到了它。 这个程序是一个我没有收到错误的示例。 #include int main() { system("pause"); } // en
我在 c# System.URI.FormatExption 中遇到问题 为了清楚起见,我使用的是 Segseuil 的 Matlab 方法,并且它返回一个图片路径 result。我想为其他用户保存此
我正在尝试像这样设置文本框的背景色: txtCompanyName.BackColor = Drawing.Color.WhiteSmoke; 它不喜欢它,因为它要我在前面添加系统,例如: txtCo
请帮助我解决 System.StackOverflowException我想用 .aspx 将记录写入数据库我使用 4 层架构来实现这一切都正常但是当我编译页面然后它显示要插入数据的字段时,当我将数据
我使用了一些通常由系统调用的API。 因此,我将 android:sharedUserId="android.uid.system" 添加到 manifest.xml, 并使用来自 GIT 的 And
我正在尝试创建一个小型应用程序,它需要对/system 文件夹进行读/写访问(它正在尝试删除一个文件,并创建一个新文件来代替它)。我可以使用 adb 毫无问题地重新挂载该文件夹,如果我这样做,我的应用
我想从没有 su 的系统 priv-app 将/system 重新挂载为 RW。如何以编程方式执行此操作?只会用 Runtime.getruntime().exec() 执行一个 shell 命令吗
我正在尝试制作一个带有登录系统的程序我对此很陌生,但我已经连续工作 8 个小时试图解决这个问题。这是我得到的错误代码 + ServerVersion 'con.ServerVersion' threw
当我“构建并运行”Code::Blocks 中的程序时,它运行得非常好!但是当我从“/bin”文件夹手动运行它时,当它试图用 system() 调用“temp.bat”时,它会重置。这是为什么?它没有
我想使用 system/pipe 命令来执行具有特殊字符的命令。下面是示例代码。通过系统/管道执行命令后,它通过改变特殊字符来改变命令。我很惊讶地看到系统命令正在更改作为命令传递的文本。 run(ch
我是一名优秀的程序员,十分优秀!