我正在为NFL球员数据库编写一个搜索功能
用户输入搜索字符串,如“Jason Campbell”或“Campbell”或“Jason”
我很难得到合适的结果
索引时应该使用哪个分析器?查询时使用哪个Query?我应该区分名字和姓氏还是只索引全名字符串
我喜欢以下行为:
查询:“杰森·坎贝尔”->结果:一名球员杰森·坎贝尔的精确匹配
查询:“坎贝尔”->结果:所有以坎贝尔为名的球员
查询:“Jason”->结果:所有名字中有Jason的玩家
查询:“Cambel”[拼写错误]->结果:所有名字中有
标签: Lucene
full-text-searchspell-checkingsynonymstemming
我正在使用Lucene为数据库编制索引,然后对特定字段(字段名:关键字)执行短语搜索。
我目前正在使用以下代码:
String userQuery = request.getParameter("query");
//create standard analyzer object
analyzer = new StandardAnalyzer(Version.LUCENE_30);
Analyzer anal
关联挖掘在文本语料库中检索相关术语时似乎取得了很好的效果。在这个主题上有几项工作,包括著名的方法。挖掘关联最直接的方法是建立docs X terms的共现矩阵,并查找最常出现在相同文档中的术语。在我以前的项目中,我通过TermDocs上的迭代直接在Lucene中实现了它(我通过调用来实现)。但我在索尔看不到任何类似的东西
因此,我的需要是:
检索特定字段中最相关的术语
检索特定字段中最接近指定项的项
我将按照以下方式对答案进行评分:
理想情况下,我希望找到Solr的组件,它可以直接满足特定的需求
我有一个简单的lucene索引,其中包含一些演示文档:
Title, Keywords, H1Tag
现在,我想删除索引中的一个文档,
但是从我所读到的,我不能依赖docId,因为它可能会改变
那么我应该如何更新/删除文档呢
我找到的唯一用于删除/更新的示例都是基于术语的,比如标题与我要删除的内容相等,但是如果我有20个相同的标题怎么办?您也可以将查询传递给DeleteDocuments
所以
新的QueryParser…解析+标题:+H1Tag:+关键词:
也可用于删除文档
另一种选择是形成
您好,我听说Trie最适合自动建议器/自动完成。
但是dwag使用更少的空间,所以我认为dwag应该更好
另外,如果Sphinx/Lucene可以进行前缀匹配,那么我们为什么不使用它呢
此外,Trie/dwag对小表也有好处???我看到的问题;道格是相对复杂的。您可以通过所有单词获得唯一的路径(以便将一些数据与您通常需要的键相关联),但这比使用trie困难得多,trie只压缩前缀并具有唯一的终端节点。只有在内存非常有限的情况下(比如在嵌入式设备上),使用DAWG得到的后缀压缩才是值得的,因为您提
我目前正在lucene 4.0上使用快照版本(因为bm25),我想知道是否有可能获得给定学期的分数。
例如,在索引上,我为每个文档存储两个字段,即内容字段中的文档内容和作者字段中的作者。
现在,当我检索文档时,我也会检索作者,但当我检索作者时,我会活着获得每个作者的分数(集合范围分数),这样我就可以对作者进行排序
也就是说,在获取作者后,是否可以查询每个作者的lucene,并通过这种方式找到其各自的分数(我依赖BM25评分模型)?是的,这是最好的方式吗
非常感谢如果您只是在调试,请使用expla
当我传入一个查询“state:OR”时,lucene给出了一个错误,因为它认为“OR”是
布尔子句的关键字,但这里我实际上是俄勒冈州的缩写
我已经看到,引用或使查询变成“state:”或“state:”使其工作
但这听起来不是一个很好的方法,因为我必须对lucene使用的每个关键字进行字符串替换:AND或NOT和其他??我不知道有多少
我尝试直接构造查询而不是执行queryParser.parse(),但这似乎没有通过分析器,这是一个大问题。中只有3个独立的关键字--AND,OR,AND not
我正在将我的应用程序从lucene 2.X移植到lucene 3.X。以下是我的问题
这个在2.X中是有效的,但是3.5给了我一个错误
IndexReader=IndexReader.open(“/home/path/to/my/dataDir”)
2.X接受字符串,但3.5严格要求目录对象。我发现目录是抽象的,实例化它的唯一方法似乎是RAMDirectory()
我该如何做,以及如何将我的读者指向所需的目录?我能够做到这一点。我就是这样做的
IndexReader reader = Index
我有两个关于ElasticSearch的问题
1) 是否有任何方法可以指定我想要特定字段按降序排序的结果?
等效SQL查询将是:
select * from table1 where a="b" order by myprimarykey desc;
2) 如何获取第一条和最后一条(最新)记录?1)Elasticsearch非常复杂,允许您控制排序顺序。因此,在elasticsearch中,与MySql查询等效的查询如下所示:
{
"query" : {
"term"
我使用Alfresco 4.1并启用Lucene。我有一个“myfoldertype”类型的文件夹,名为“一两”。名称上的标记化(默认情况下)已启用。
我通过自己的Java支持的webscript按名称搜索特定类型的文件夹。像这样:
SearchParameters sp = new SearchParameters();
sp.addStore(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE);
sp.setLanguage(SearchService.LAN
我需要创建和查询不区分大小写的全文索引:
我认为这与中描述的用例相同,但我看不出在哪里/如何指定Mattias Persson答案中建议的选项:
通过使用此配置创建它:
我想我将添加以下内容:
这是通过配置文件实现的,还是(更好)通过JavaAPI实现的?我可以找到关于如何做到这一点的文档,但不能找到早期版本的文档(目前我仍在使用这些文档)
谢谢有关如何设置不区分大小写的索引的示例,请参见
请注意,您无法更改现有索引的配置,因此必须在首次访问索引时设置随“forNodes”传入的映射
{
"an
当neo4j lucene自动索引处于精确模式(默认模式)时,类型为:
start n=node:node_auto_index('name:asfd\\ a*') return n
正确工作(例如,假设您有一个名为asdf adsf的节点
但是,在将索引切换到“全文”模式(包括删除索引和重新分配索引属性)之后,同一查询不会返回任何结果
原始问题
在空格后放置通配符时,尝试通过全文索引搜索neo4j无效
请参见图表要点:您可以将查询编写为:
MATCH (n)
WHERE n.name =~
有没有办法用Lucene实现像反向地理空间搜索这样的功能?我的意思是,索引对象分别定义一个位置lat/lng和一个半径。我想查找搜索位置在索引对象半径范围内的所有对象
现实生活中的一个例子可能是一组比萨饼配送服务,每个服务都提供半径为x的区域。我想找到所有能给我送披萨的披萨服务。所以,不是我定义搜索半径,而是由目标对象定义的
我所找到的只是在给定半径内执行搜索。
欢迎提供任何链接/提示,甚至是不同技术的链接/提示
当我们传递一个包含特殊字符的查询时,弹性搜索就是拆分文本。
例如,如果我们通过了查询中的“测试”,我们如何进行弹性搜索,将其视为单个单词而不是拆分
我们正在搜索的字段上使用的分析器:
"text_search_filter": {
"type": "edge_ngram",
"min_gram": 1,
"max_gram": 15
},
"standard_stop_filter": {
"type":
关于ES索引结构的几个问题,请:
(1) 源是Lucene中的一个字段吗?如果是的话,Lucene是如何存储它的?它会是一个键值存储而不是反向索引吗
(2) ES_id是Lucene中的字段,还是在其他键值存储中。如果我使用md5作为我的文档id,并在我的文档中创建md5字段,那么哪一个查询更快,即搜索id或搜索md5更快
(3) ES类型是Lucene中的字段吗?如果是,为什么ES中的不同类型可以具有相同的文档id。
提前谢谢 (1)存储包含原始JSON的,以便可以获取(通过等)。但是,它没有
标签: Lucene
lucene.netzend-search-lucene
我是lucene环境和使用方面的新手
1-Indexer.java类用于索引原始数据,以便我们可以使用lucene库进行搜索
2-LuceneConstants.java类用于提供在示例应用程序中使用的各种常量
3-Searcher.java类用于搜索Indexer创建的索引,以搜索请求的内容
4-TextFileFilter.java类用作.txt文件过滤器
5-LuceNet.java lass用于测试lucene库的索引和搜索能力
现在,我尝试在Indexer.java中为单词位置(Ter
由于我经常遇到下面描述的这个问题,我想改变,但缺少更好的选择
我有两个查询应该返回相同的结果。但是第二个查询返回的结果要少得多,有时甚至没有结果。以下是两个问题:
SELECT * FROM statistics WHERE source = 'toutiao' AND timespan = '3';
SELECT * FROM statistics WHERE source = 'toutiao' AND timespan = '3' AND text = '{ sort: {fields:
考虑到这样的文件
{ firstName: "Jack", lastName: "Smith"}
及
要建立“自由文本”的搜索索引,我可以执行以下操作之一:
for(var key in doc)
index("default", doc[key], {"store":true});
//e.g. resulting field = default:["Jack", "Smith"]
或
是否存在性能/搜索质量差异?假设您使用的是标准分析器,索引“Jack Smith”和[“Jack”,
我有一个基于Lucene自定义实现的搜索引擎,不幸的是我仍然使用Lucene 3.0.3,我无法更改它,原因超出了这个问题的范围。
现在我需要从Java 6迁移到Java 8,但是当我使用Java 8 JVM运行索引时,我遇到了“打开的文件太多问题”,如下所示:
java.io.FileNotFoundException: /myIndex/_27c.fdx (Too many open files)
at java.io.RandomAccessFile.open0(Native Me
我想以一种能够很好地使用现场桥接和手动搜索的方式实现lucene分析器。理想情况下,我希望尽可能少的代码重复
我知道大多数教程都会告诉您使用@AnalyzerDef annotation初始化分析仪,虽然我这样做并使一切正常,但我无法在FieldBridges中创建字段以尊重分析仪。(使用luceneoptions.addFieldToDocument创建)
我试图找到另一种方法,但文档很少
这就是我提出的(为了保持文章简短,一些代码已经被编辑,但如果需要,我会发布更多。):
创建分析器:
我理解默认评分函数使用TF*IDF或其类似变体。但是,我不清楚这在查询中是如何工作的,例如BooleanQuery
假设我创建了一个BooleanQuery,其中包含许多TermQuerys和出现。应该。是否将查询的TF作为一个整体考虑?例如,如果myBooleanQuery包含两个带有术语“hello”的TermQuerys,则表示“hello”的TF在查询本身中较高。考虑到这一点了吗?还是只考虑了个别文件的不同TF
查看 MORILKEY(…)< /代码>的源代码,它似乎考虑了查询本身中的T
我在.NETWeb应用程序中使用LuceneAPI。
我想对所有请求使用相同的Indexsearcher实例。因此,我将Indexsearcher实例存储在http缓存中
以下是我的代码:
if (HttpRuntime.Cache["IndexSearcher"] == null)
{
searcher = new IndexSearcher(jobIndexFolderPath);
我们计划使用lucene作为FTI服务。除此之外,我们希望基于文档的标记属性构建一个标记索引,该属性只包含空格分隔的标记
现在建议标记完成,如果有一种方法可以访问给定索引的所有唯一关键字,那就太好了。Lucene必须能够在内部做到这一点,因为它使用它来完成类似于使用OR重写它们的查询
有什么建议吗?如果您尝试完成标记,您不需要所有唯一的标记,您需要与用户已经输入的标记相匹配的标记。这可以通过通配符、模糊、span或proefix查询来完成,具体取决于需要。用于获取标记字段的所有术语值(和文档计数
我使用lucenejavaQueryParser和KeywordAnalyzer。像topic:(hello world)这样的查询被KeywordTokenizer分解为多个部分,因此生成的查询对象类似于topic:(hello)topic:(world),即,我现在有两个键值对,而不是一个。我希望QueryParser将hello world解释为一个值,而不使用双引号。最好的方法是什么
解析topic:(“hello world”)会产生一个单键值组合,但不能使用双引号
我没有使用Luce
如果你看这张照片,你会看到
Lucene是一个很好的工具
这如果你想要苹果和苹果
(复数)要匹配,你只需要
小心使用正确的
索引和编辑时的语言词干分析器
查询索引
我是lucene的新手,几乎不了解如何添加和保存文档
如何搜索标签字段,使苹果和苹果相同
我使用的是我想你是在寻找词干算法,这里有一个
您可能会发现对.net有帮助
标签: Lucene
string-matchingfuzzy
Lucene模糊匹配使用基本的editDistance算法来实现模糊匹配。
Lucene是否有其他使用其他相似性度量的模糊匹配实现?他们还应该识别出调音员。另外,请比较lucene的各种模糊匹配方法。不要认为lucene提供了任何其他字符串匹配算法,但是您可以自己添加一种。是一个很好的库,其中包含了最著名的字符串比较算法 不要认为Lucene提供了任何其他字符串匹配算法,但是您可以自己添加一个。是一个很好的库,其中包含了最著名的字符串比较算法 我一直在做的事情非常简单,并且在大多数场景中都有效(
在alfresco中,我需要编写一个lucene查询,以便在搜索时从内容中消除/排除xml标记
示例:如果根据内容搜索文件try.xml,则我的搜索不应搜索xml标记
try.xml
<sample>This is an example</sample>
try.xml
这是一个例子
如果我将搜索文本指定为“sample”,则不应返回文件名“try.xml”。
那么我怎样才能做到这一点呢
编辑
我尝试了下面的查询,没有任何更改
@cm\:name:"try*" -TE
我正在调试我的boosting算法,我无法完成调试文本的结尾。有关案文如下:
358.5638=产品(常量(1.0E10)、div(int(ViewCount)=47092、ms(常量(1313350611991)、str(上传日期)=2008-09-19T16:30:16Z)))
现在,如果我的计算正确,我们得到1e10*47092/ms(现在是“该日期”)=1e10*47092/9.1510096E10=5146.09885
更糟糕的是,它似乎没有一个模式。在执行本例的结果的调试信息中,so
我正在寻找一种方法来理解lucene 3.4中新实现的嵌套文档特性是如何工作的。考虑到这是一项非常新的功能,目前网络上似乎还没有任何可用的教程。有人能演示一下如何索引/查询它们吗?将非常有帮助,非常感谢:-)
Ananth.我刚刚发表了一篇关于使用BlockJoinQuery的博文:
我读过Lucene通过一种称为索引时间连接的功能支持嵌套文档。然而,我找不到任何关于如何创建嵌套文档的教程或简单示例。你找到关于它的信息了吗?
我可以使用Nutch对网页进行抓取和索引,但我不知道如何读取索引并从中提取数据
谁能给我介绍一些阅读索引的有用工具吗
我想添加一个中文分析器和一个IndexFilter插件,所以我想阅读索引来验证我的插件。此外,我还想对使用Java爬网的数据进行一些处理。用于浏览nutch索引。dump index选项可以为整个索引创建xml文件。如果你必须通过代码来完成,那么你需要学习lucene
要读取已爬网的内容,请使用。您可以使用提供的读取命令,如
bin/nutch readseg xxx
阅读内容
我需要帮助设置lucene拼写检查器的字符集(3.6版的核心lucene和拼写检查器)。我的字典(“D:\dictionary.txt”)既有英语单词,也有俄语单词。
我的代码与英文文本配合得很好。例如,它返回单词“hello”的正确拼写。但它不适用于俄语。例如,当我拼错一些俄语单词时,编译器引发异常(线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:0),它找不到任何关于俄语单词的建议
这是我的密码:
RAMDirecto
我有一个Lucene(3.5.0)索引,其中文档使用标准分析器和其他一些具有不同分析器的字段进行索引。Io我想编写一个查询(或查询组合),在两种情况下使用and逻辑进行查找。我在文献中做了很多尝试,但似乎没有解决这种情况。看看如何将不同的查询组合在一起
您只需要使用add方法向其中添加不同的查询,并指定查询是否必须匹配、应该匹配或不匹配
我需要一些帮助来决定我的Neo4j数据库的正确索引策略。在数据库中,我拥有拥有项的用户,每个用户和项都有一个修改过的历元整数值和一个UUID值(一个修剪过的Base64字符串)。我正在开发2.0-M6,因此我可以很好地使用新的基于索引的方法在label USER的“uuid”字段上查询用户
但是索引用户的项目更复杂。我希望执行类型为“userUUID=X和modified>Y”的两个查询,这两个查询应返回具有比数字Y更大(更近)的修改整数的所有项。但我还希望执行一个简单的搜索“userUUID=
我找不到任何使用Lucene 4.8从文本中删除停止词的示例。您能告诉我如何使用StopFilter类和StopAnalyzer类来实现这一点吗 三个标准分析器中的两个构造函数允许指定停止字;随便用一个。此分析器在下面使用StopFilter,您不必做任何额外的操作。这对我没有帮助。它没有任何停止字删除代码。请重新阅读我的答案。链接中的示例代码使用StandardAnalyzer,可以使用stopwords进行配置。
我正在执行lucene搜索以查找具有特定类别的文档。
我的类别层次结构如下所示:
根类别:
-公司文件
-目瞪口呆
参考search API Alfresco文档后,我尝试了以下查询:
+PATH:\"//cm:GAW//*"
+PATH:\"/cm:generalclassifiable//cm:GAW//*"
+PATH:\"/cm:generalclassifiable//cm:GAW/member"
+PATH:\"/cm:generalclassifiable//cm:GAW//
我想使用“AND”作为查询字符串,而不是布尔运算符,但lucene总是将其识别为布尔运算符
例如,我想查询“AND”,以便找到“Grive HORNER AND ASSOCIATES”,如下所示
Query query = QueryParser.parse("AND");
然而,lucene给出了错误,他说
Exception in thread "main" org.apache.lucene.queryParser.ParseException: Cannot parse 'AND':
我正在使用Neo4j 2.0
我有一个标签PROD。所有具有标签PROD的节点都有一个属性name。我在name上创建了如下索引:
CREATE INDEX ON :PROD(name)
如果我将属性name的值从“old”更改为“new”,则在创建索引后,以下查询在用于测试的小数据集中可以正常工作,但在我们的生产数据中无法正常工作,其中700个节点具有标签PROD(其中总共有大约100万个节点具有其他标签)
我还在同一个字段上创建了遗留索引,在删除节点并在修改时对其重新编制索引之后,它在测
我正在寻找任何方法从我的查询结果中获取一些随机样本。
问题是,它应该保持秩序,并且应该可以用相同的种子重复。
我尝试使用自定义筛选器,但它不能在一次调用中访问所有返回的文档。
在最坏的情况下,我将调用query take id,从它的数组中采样,并使用附加的过滤器再次调用query(问题是,我在几个不同的地方需要它,我有一个常用的方法来构建过滤器)
你有更好的主意吗
“关注”正是这样做的,因此如果您需要停留在Lucene级别,您只需查看源代码,就可以了解在Lucene之上捆绑所有需要的java代
在sitecore中,我以以下方式使用Lucene搜索:
IndexSearchContext context = searchIndex.CreateSearchContext();
SearchHits hits = context.Search(searchString);
var results = hits.FetchResults(0, hits.Length);
如何从点击中获取分数字段值?int hitswannt=hits.length();
int hitsCounn
我的开发人员告诉我,Lucene无法处理使用关联权重的通配符搜索。我们有一个部分字符串,它以所使用的逻辑开头,所以用单词wood搜索将返回wood
我们现在的排名几乎完全是基于,但我想给coord分配一个权重。程序员强调说,如果启用上述通配符搜索,Lucene将完全忽略coord,并且无法将其添加到相关性评分中。这是真的吗
假设我为一张特定照片上的评论编制索引,如下所示
IndexWriterConfig config=new IndexWriterConfigVersion.LUCENE_36,analyzer;
IndexWriter IndexWriter=新的IndexWriterindexDir,配置;
Document doc1=新文档
doc1.addFieldnew FieldphotoId,12345.jpg,Field.Store.YES,Field.Index.NOT\u分析\u否\u规范;
我需要知道哪一个更快,为什么
案例1:内部对象
{
"name":"Zach",
"car":{
"make":"Saturn",
"model":"SL"
}
}
案例2:
{
"name":"Zach",
"carmake":"Saturn",
"carmodel":"SL"
}
我已经通过了链接,它说内部物体很快。但它比非规范化对象快吗?为什么总是有一对一的关系,包括姓名和汽车 你需要更仔细地阅读。它回答了你所有的问题。它提到内部对象都是扁平的
我在elasticsearch中有一些数字字段,我必须实现一些逻辑,我需要为这些逻辑创建一些脚本字段。我不熟悉Kibana4的脚本字段功能,因此我需要一些关于基本格式的帮助,该格式可用于在脚本字段中编写基本if-else条件
详细说明:
我在elasticsearch中有一个数字字段x,我需要创建两个脚本字段f1和f2,这样
if x==0
f1 = 1 and f2 = 0
else
f1 = 0 and f2 = 1
只需在Kibana4的脚本字段功能中使用正确的语法即可。
我每次使用elasticsearch都会得到无效的搜索结果。我使用explain:true运行了一个查询并检查了结果。我很惊讶“凌乱”的输出条目有不同的分数和解释分数:
“_分数”:0.32287252,
...
“_解释”:{
“价值”:1.6143626,
“说明”:“产品名称:”,
...
如果这些(杂乱的)条目解释了\u score中的分数值,输出看起来会很完美。有人知道如何解决这个问题吗
PS:我试图将碎片的数量从5更改为1:没有任何变化,输出仍然无效。哪个ES版本?对于错误计算的
我有一个像这样的elasticsearch范围查询
curl 'localhost:9200/myindex/_search?pretty' -d '
{
"query": {
"range" : {
"total" : {
"gte" :174,
"lte" :180
}
}
}
}'
我需要在grafana中将此查询用于我的图形。我试图将此添加为Lucene查询
我们采用了使用ELK堆栈的集中式日志记录。但是,我不知道如何根据消息内容的子字符串(或regex或更复杂的处理)对消息进行分组
例如:
消息1:已删除的对象id[123]
消息2:合并对象id[123]到[456]
消息3:未能将对象id[123]合并到[789]
等等
我希望能够根据回复特定筛选器(例如“未能合并”)的消息分组,但要基于正则表达式(例如,第一个对象id—“对象id[(.*)”)或类似的内容),因此我将获得对象X未能合并到任何其他对象的次数计数
Kibana/ES/Lucen
我想为聚合创建一对多关系。
“连接”将根据一个名为“common_id”的字段:
当我创建属于同一组的第一个文档时,我希望使用它的flakeId(它的_id)作为公共_id
当添加属于同一组的其他文档时,我希望显式地将common_id设置为与我添加的第一个文档具有相同的值。这可以由我的应用程序完成,因为我的应用程序将知道第一个元素的公共_id
我的问题在于第一个文档:
如何让elasticsearch在一次对elastic的调用中将_id复制到公共_id中(我知道我可以使用更新脚本,或者使
提高搜索性能
我们目前正在生产sitecore 8.1.3,并使用Lucene Search进行搜索。我们将在不久的将来转向SOLR或Coveo search。也就是说,我们正在努力改进网站的搜索功能
在当前场景中,如果用户在我们的站点上搜索,Lucene search将从sitecore内容项向我们提供适当的搜索结果。结果是一个项目列表,其中一些项目具有演示详细信息,而另一些项目没有演示详细信息(基本上是数据源项目,或拉入多列表字段项目)。我们直接向用户显示包含演示文稿详细信息的结果,但是,数
我有一个使用Elasticsearch 6的简单“person”数据库,基本上如下所示:
id | firstName | lastName
-------------------------
1 | Tim | Berners-Lee
2 | Linus | Torvalds
3 | Noam | Chomsky
我想按lastName(和/或按firstName——取决于用户输入)进行查询和排序
现在我找到了两个似乎有效的解决方案,但我不确定哪一个是“正
标签: Lucene
information-retrievalanalyzer
为了便于学习,我从1个文件创建了一个索引,并希望搜索它。我使用的是Lucene版本4.4。我知道索引部分是正确的
tempFileName是包含令牌的文件名,该文件包含以下文字:
“奇数加奇数等于偶数##偶数加偶数等于偶数##奇数加偶数等于奇数#”
但是,当我提供一个查询时,它什么也不返回。我看不出会有什么问题。非常感谢您的帮助
索引部分:
public void startIndexingDocument(String indexPath) throws IOException {
上一页 1 2 ...
34 35 36 37 38 39 40 ...
下一页 最后一页 共 78 页