我找不到一个更好的标题,我希望稍后如果可能的话在你的最终消遣中改变它.
我的问题:
我有一个音乐艺术家的数据库.这些看起来像这样:"dr.dre feat.ano","eminem&dr.dre","dr.dre feat.ll cool j","dr.dre","dr.dre feat.eminem&skylar grey" .我们只有两个字段:id和name.
在默认模式solr核心上,我运行此查询:"q = dr.dre",结果还可以,但不完美,如下所示:
请注意,他们得到了完全相同的分数.
我想要的是将"dr.dre"作为第一个结果,然后是所有其他结果,如下所示:
我该如何实现这一目标?(过滤器,标记器,复制字段等等并不重要.我无法更改solr中的代码,因为我在其他论坛上看到过建议)
谢谢.
我有一个大文本文件.我需要提取包含确切单词"DUSP1"的所有行.这里有一个例子:
9606 ENSP00000239223 DUSP1 BLAST
9606 ENSP00000239223 DUSP1-001 Ensembl
Run Code Online (Sandbox Code Playgroud)
我想要检索第一行而不是第二行.
我尝试了几个命令:
grep -E "^DUSP1"
grep '\<DUSP1\>'
grep '^DUSP1$'
grep -w DUSP1
Run Code Online (Sandbox Code Playgroud)
但它们似乎都不起作用.我应该使用哪个选项?
好的,所以基本上我有一些代码匹配正则表达式的URL.然后它将根据URL匹配的正则表达式调用某个函数.我从不想要为URL调用多个函数,我希望正则表达式匹配必须是"精确"
例如,使用简单的URL,/我使用一个简单的正则表达式/,它将匹配,/但它也会匹配像/foo和的东西/foo/bar.
如何在C#/ .Net中阻止这种部分匹配行为?
我正在使用弹性搜索,而且我有一个时间的魔鬼可以完全匹配.我已经尝试过match,query_string等的各种组合,我得到的结果都不算什么.查询看起来像这样:
{
"filter": {
"term": {
"term": "dog",
"type": "main"
}
},
"query": {
"match_phrase": {
"term": "Dog"
}
},
"sort": [
"_score"
]
}
Run Code Online (Sandbox Code Playgroud)
排序结果
10.102211 {u'term': u'The Dog', u'type': u'main', u'conceptid': 7730506}
10.102211 {u'term': u'That Dog', u'type': u'main', u'conceptid': 4345664}
10.102211 {u'term': u'Dog', u'type': u'main', u'conceptid': 144}
7.147442 {u'term': u'Dog Eat Dog (song)', u'type': u'main', u'conceptid': u'5288184'}
Run Code Online (Sandbox Code Playgroud)
我看,当然,"狗","那条狗"和"狗"都有相同的分数,但我需要弄清楚如何在分数中提升完全匹配"狗".
我也试过了
{
"sort": [
"_score"
],
"query": {
"bool": {
"must": [
{
"match": {
"term": "Dog"
}
},
{ …Run Code Online (Sandbox Code Playgroud) 首先,使用全文搜索似乎无法获得完全匹配.当使用全文搜索方法时,这似乎是一个高度讨论的问题,并且有许多不同的解决方案来实现期望的结果,但是大多数看起来非常低效.由于我的数据库量,我被迫使用全文搜索,我最近不得不实施其中一种解决方案以获得更准确的结果.
由于它的工作原理,我无法使用全文搜索的排名结果.例如,如果您搜索了一部名为"电影"的电影,Toy Story并且还有一部电影被调The Story Behind Toy Story出而不是完全匹配,因为它发现了Story两次这样的单词Toy.
我跟踪自己的排名,每当用户访问记录数量上升时,我称之为"人气".我使用此数据点来加权我的结果,以帮助确定用户可能正在寻找的内容.
我还有一个问题,有时需要回到LIKE搜索而不返回完全匹配.即搜索Goonies应返回The Goonies(最受欢迎的结果)
这是我当前存储过程的一个示例,用于实现此目的:
DECLARE @Title varchar(255)
SET @Title = '"Toy Story"'
--need to remove quotes from parameter for LIKE search
DECLARE @Title2 varchar(255)
SET @Title2 = REPLACE(@title, '"', '')
--get top 100 results using full-text search and sort them by popularity
SELECT TOP(100) id, title, popularity As Weight into #TempTable FROM movies WHERE CONTAINS(title, @Title) ORDER BY [Weight] DESC
--check …Run Code Online (Sandbox Code Playgroud) 如何在字符串中搜索完全匹配?例如,如果我有一个包含此文本的字符串:
标签
标签:
标签
我搜索标签,我只想得到第一场比赛,而不是其他两场比赛.我尝试了Contains和IndexOf方法,但他们也给了我第二和第三场比赛.
在下面的示例中,输出为true.它cookie和它也匹配cookie14214我猜它是因为cookie在字符串中cookie14214.我如何磨练这场比赛才得到cookie?
var patt1=new RegExp(/(biscuit|cookie)/i);
document.write(patt1.test("cookie14214"));
Run Code Online (Sandbox Code Playgroud)
这是最好的解决方案吗?
var patt1=new RegExp(/(^biscuit$|^cookie$)/i);
Run Code Online (Sandbox Code Playgroud) 我正在使用PHP和Bing API来搜索某些域名.我只希望得到完全匹配的结果.
以某种方式Bing会返回完全不匹配的结果.
当我搜索:
"www.gebouw.nl"
我有时也得到像"www.gprgebouw.nl"这样的结果
有没有办法告诉Bing只搜索确切的匹配?
我有两个 Pandas 数据框,我想在多列(比如 3)和大约(即最近的邻居)上的一个(日期)列上加入/合并。我也想返回它们之间的差异(天)。每个数据集大约有 50,000 行长。我对内连接最感兴趣,但“剩菜”也很有趣,如果不是太难掌握的话。大多数“完全匹配”观察结果将在每个数据框中多次出现。
我一直在尝试使用difflib.get_close_matches将它们全部连接为字符串(这很愚蠢,我知道!)但并不总是给出完全匹配。我想我需要先循环精确匹配,然后在该组中找到最近的匹配,但我似乎无法正确...
数据框看起来像:
df1 = pd.DataFrame({'index': ['a1','a2','a3','a4'], 'col1': ['1232','432','432','123'], 'col2': ['asd','dsa12','dsa12','asd2'], 'col3': ['1','2','2','3'], 'date': ['2010-01-23','2016-05-20','2010-06-20','2008-10-21'],}).set_index('index')
df1
Out[430]:
col1 col2 col3 date
index
a1 1232 asd 1 2010-01-23
a2 432 dsa12 2 2016-05-20
a3 432 dsa12 2 2010-06-20
a4 123 asd2 3 2008-10-21
df2 = pd.DataFrame({'index': ['b1','b2','b3','b4'], 'col1': ['132','432','432','123'], 'col2': ['asd','dsa12','dsa12','sd2'], 'col3': ['1','2','2','3'], 'date': ['2010-01-23','2016-05-23','2010-06-10','2008-10-21'],}).set_index('index')
df2
Out[434]:
col1 col2 col3 date
index
b1 132 asd 1 2010-01-23
b2 432 dsa12 2 2016-05-23
b3 432 …Run Code Online (Sandbox Code Playgroud) 我已经查看了我能找到的关于执行完全匹配、不区分大小写查询的每篇文章和帖子,但是在实施时,它们并没有执行我正在寻找的内容。
在将此问题标记为重复之前,请阅读整篇文章。
给定一个用户名,我想查询我的 Elasticsearch 数据库以仅返回与用户名完全匹配的文档,但也不区分大小写。
我曾尝试lowercase为我的username财产指定一个分析器并使用match查询来实现此行为。虽然这解决了不区分大小写匹配的问题,但它在精确匹配时失败了。
我研究过使用lowercase规范化器,但这会使我所有的用户名在索引之前都小写,所以当我聚合用户名时,它们会以小写形式返回,这不是我想要的。我需要保留用户名中每个字母的原始大小写。
POST {elastic}/users/_doc
{
"email": "random@email.com",
"username": "UsErNaMe",
"password": "1234567"
}
Run Code Online (Sandbox Code Playgroud)
该文档将存储在一个索引中,users完全按照它的方式命名。
GET {frontend}/user/UsErNaMe
Run Code Online (Sandbox Code Playgroud)
应该回来
{
"email": "random@email.com",
"username": "UsErNaMe",
"password": "1234567"
}
Run Code Online (Sandbox Code Playgroud)
和
GET {frontend}/user/username
Run Code Online (Sandbox Code Playgroud)
应该回来
{
"email": "random@email.com",
"username": "UsErNaMe",
"password": "1234567"
}
Run Code Online (Sandbox Code Playgroud)
和
GET {frontend}/user/USERNAME
Run Code Online (Sandbox Code Playgroud)
应该回来
{
"email": "random@email.com",
"username": "UsErNaMe",
"password": "1234567"
}
Run Code Online (Sandbox Code Playgroud)
和
GET {frontend}/user/UsErNaMe $RaNdoM LeTteRs
Run Code Online (Sandbox Code Playgroud)
应该不返回任何东西。
谢谢你。