我正在使用Lucene API开发“给定半径内基于美国的最近城市搜索”功能。
Am在Lucene中索引城市的lat和long值,如下所示:
doc.Add(new Field("latitude", paddedLatitude, Field.Store.YES, Field.Index.UN_TOKENIZED));
doc.Add(new Field("longitude", paddedLongitude, Field.Store.YES, Field.Index.UN_TOKENIZE
我是Lucene的新手,正在努力解决这个问题。我是这样做的:
Directory dir = FSDirectory.Open(new System.IO.DirectoryInfo(dirIndexDir));
//Create the indexWriter
IndexWriter writer = new IndexWriter(dir, new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE
我正在与Lucene3.0.2合作。有谁能告诉我什么是有序得分和无序得分。
请回复。您可能应该提供一些上下文。
标签: Lucene
full-text-searchpylucenesnowballanalyzer
我试图在PyLucene中使用SnowBallaAnalyzer,但当我尝试创建一个类似这样的实例时,总是会出现一个错误,即:InvalidArgsError:
analyzer=SnowBallAnalyzer(“西班牙语”)
或
analyzer=SnowBallAnalyzer(“西班牙语”,STOPWORDS)
我真正需要的是,如果我搜索“Fútbol”,我应该获得带有“futbol”或“Fútbol”字样的文档。所以我想将SnowBallaAnalyzer应用于我想为查询建立索引的文本
标签: Lucene
full-text-search Solr
search-engineelasticsearch
Solr和ElasticSearch都是基于Lucene构建的
它们在以下方面如何相互比较:
功能(特别是方面和多语言支持)
演出
可伸缩性
稳定性
可管理性
您对这两种软件有什么经验可以分享吗
谢谢。我只能谈谈Solr,因为我们正在使用Solr
我在EC2上部署了一个Solr堆栈,我们在每个数据库上处理数百万条记录。我目前有一个主/从设置和一个非常好的模式定义
除了Solr明显的性能优势和您可以执行的惊人查询之外,还有一件经常被忽略的事情,那就是它的设置和学习是多么容易!阅读Solr 1.
我想在索引中搜索特殊字符
我转义了查询字符串中的所有特殊字符,但当我在索引中的lucene上执行queryas+时,它将创建queryas+()
因此,它不搜索任何字段
如何解决这个问题?“我的索引”包含这些特殊字符。如果您使用的是StandardAnalyzer,则将丢弃非字母字符。尝试使用空白分析器为相同的值编制索引,看看这是否保留了所需的字符。它也可以保留你不想要的东西:当你可以考虑编写自己的分析器时,这基本上意味着创建一个ToKeNoStk堆栈来完成你需要的处理。
例如,SimpleAn
我向schema.xml添加了一个多值字段,如下所示:
<field name="fieldsharedsite" type="string" indexed="true" stored="false" multiValued="true" />
<field name="fieldsharedchannelnew" type="string" indexed="true" stored="false" multiValued="true" />
对于fieldsh
使用Lucene,我想将索引中的文档与其他文档进行比较。我发现一个很好的方法是将文档作为查询提交。问题是,我需要将术语作为OR环,最困难的部分是使用术语频率提升术语
我认为,如果我修剪文档中的所有空格,并将它们替换为”或“”,lucene将解析并解释它。但是有没有一种最复杂的方法来处理这个问题呢
哪种方法最容易提高术语的频率?看起来你在尝试重新实现Lucene的。看起来你在尝试重新实现Lucene的。事实上,我认为我需要更简单的方法。我只想比较两份使用tf*idf方案的文件,也就是说,如果这些文
标签: Lucene
similaritydocuments
我已经索引了400个文档。然后我想给出两个文档,lucene返回这两个文档之间的相似性。可能吗?提前感谢。简而言之。计算两个文档向量的余弦
是的,但如果有人想要一个好的相似性度量,我认为他需要一个好的词干分析器,并删除停止词。有没有一个简单的方法可以做到这一点?除了Lucene?
我试图查询一个Elasticsearch包装的Lucene索引,其中包含edge Ngram,但无法理解文档中如何对其应用布尔运算符。我有这个:
{
"query":{
"bool":{
"should":[
{
"match":{
"name.partial":"+henry +james"
}
}
]
}
}}
这是行不通的(我得到的结果是有亨利和没有詹姆斯,反之亦然),也不是“亨利·詹
我正在使用lucene版本4.0.0和compass 2.2.0在Mysql中存储lucene索引
我得到了以下错误,我被困于此
Exception in thread “main” java.lang.NoSuchMethodError: org.apache.lucene.store.IndexInput: method ()V not found
你能告诉我哪一个表现更好吗。
在FS或DB中存储索引?Lucene 4.0涉及API中的重大更改,Compass无疑不支持这些更改。罗盘的开发
请问有人知道Zend Search Lucene和Lucene之间的区别吗?
提前感谢。:
Zend_Search_Lucene是一个完全用PHP5编写的通用文本搜索引擎。由于它将索引存储在文件系统上,并且不需要数据库服务器,因此它可以为几乎任何PHP驱动的网站添加搜索功能。Zend_Search_Lucene支持以下功能:
排名搜索-首先返回最佳结果
许多强大的查询类型:短语查询、布尔查询、通配符查询、邻近查询、范围查询和许多其他查询
按特定字段搜索(例如,标题、作者、内容)
Zend_S
目前我对Lucene搜索(2.9版)有一个问题
我有一个搜索词,我需要在几个领域使用它。因此,我必须使用MultiFieldQueryParser。另一方面,我必须使用WhildcardQuery(),因为我们的客户希望搜索短语中的术语(例如,“CMH”应该匹配“KRC250/CMH/830/T/H”)
我试图用星号(“*”)替换斜杠(“/”),并使用带有封闭星号的布尔查询作为术语。
不幸的是,它没有成功
有人知道吗?是的,如果显示的字段是单个令牌,则需要将setAllowReadingWild
Lucene 4.9的简单测试。
使用RamDirectory索引两个文档,宽度为3个文件[longdata、stringdata、textdata]
文件
[200000L,“你好,g”,“你好,g”]
[4000000L,“世界”,“世界”]
这是我的密码
public static void main(String[] args) throws IOException {
Directory directory = null;
IndexWriter iwriter = n
考虑以下JSON文件:-
文件1-
{
"titleSony": "The Matrix",
"cast": [
{
"firstName": "Keanu",
"lastName": "Reeves"
}
]
}
文件2-
{
"titlePixar": "The Matrix",
"cast": [
{
"firstName": "Laurence",
我将默认运算符设置为QueryParser.operator.AND,并希望在两个字段上运行查询
(apple OR windows) AND source:(40 OR 41)
但这正是Lucene所做的
(windows) AND source:(40 OR 41)
为什么它会这样运行以及如何修复它
更新
更多代码,2个字段是什么意思
QueryParser parser = new MultiFieldQueryParser(CURRENT_LUCENE_VERSION
我在使用ElasticSearch定义映射时遇到了一个问题,让我解释一下:
我有一份法国、美国、英国等国家的名单。。。我希望能够在有或没有停止词的情况下搜索它们。这就是我想要的:
在法国=>法国
美国=>美国
曼联=>什么都没有
法国的海盗=>什么都没有
我尝试了空白分析器+停止字过滤器,但当我输入united时,我得到了united和united kingdom,我希望它们都不会出现在上面的示例n°3中
然后我尝试使用关键字标记器将美国保留在一个标记中,但我无法过滤停止词
你知道解决办法吗 你
我们正在使用PRPC工具提供的OOB弹性搜索。但我的问题是一般性的
lucene索引是在数据库视图上创建的吗?
当我必须连接多个表时,如何利用lucene索引?如果是,lucene索引在连接表时是如何工作的?PRPC的OOB是什么?pega规则流程指挥官的开箱即用。PRPC是一种BPM工具。
根据Elasticsearch的文档,在该部分下,指定软件使用,计算文档d的匹配分数以搜索查询q,方法是考虑d中术语的术语频率和逆文档频率,根据文档长度进行规范化和加权。实用评分函数(psf)用于计算多项查询的相关性
现在,它还说它使用向量空间模型来计算多项查询与文档的相似性(使用余弦相似性)
问题是:如果排名是通过psf计算的,那么为什么需要进行相似度计算呢?相关性分数不是已经用来给文档排序了吗?
这两件事是如何相互作用的?答案是
在Elasticsearch中,映射的所有字段都有一个存储的属性,该属性确定字段的数据是否存储在磁盘上(除了存储整个\u源)
它默认为false
但是,每个碎片中的每个片段在映射中的每个字段都有一个Docvalues结构。该结构存储段中所有文档的字段值
默认情况下,所有文档和字段都包含在结构化文档中
因此,一方面,默认情况下Elasticsearch不存储字段的值。另一方面,它将值存储在Docvalues结构中
那么它是哪一个呢?默认情况下Elasticsearch存储还是不存储值?ES以多种格
在Elasticsearch中,如何搜索任意子字符串,可能包括空格?(搜索单词的一部分是不够的;我想搜索整个字段的任何子字符串。)
我想它必须在关键字字段中,而不是文本字段中
假设我的Elasticsearch索引中只有几千个文档,我尝试:
"query": {
"wildcard" : { "description" : "*plan*" }
}
这和预期的一样——我得到了描述中“计划”的每一项,甚至是“替换”之类的
现在,我想做
"query": {
我有一个查询,我是按智能手机分组,然后按运营商分组。在这些嵌套聚合中,我想找到特定智能手机的每个运营商的平均价格、评级和速度。这是我当前的查询:
{
"aggs": {
"group_by_smartphone": {
"terms": {
"field": "smartphone"
},
"aggs": {
"group_by_carrier": {
"terms": {
标签: Lucene
lucene.netcompass-lucene
我试图了解一个生成compass 2.2索引、存储字段内容的遗留应用程序是否可以使用luke.net打开索引,据我所知,它没有存储字段,它只返回一个id,可能在其他地方用于从db中选择
请参见lucene:
如何判断此compass应用程序是否使用lucene.net Field.Store.NO的等效项进行索引
,这是compass.cfg.xml:
<compass-core-config
xmlns="http://www.opensymphony.com/comp
你知道如何从我的应用程序中访问WEB-INF/index文件夹中的文件吗?我正在为我的应用程序使用OpenCMS,我想打开位于WEB-INF/index文件夹中的Lucene搜索索引(借助Lucene IndexReader类)。Lucene jar存储在WEB-INF/lib文件夹中。如果要在WEB-INF文件夹下的RFS(真实文件系统)上查找文件,可以通过以下方式获取路径:
String filepath = pageContext.getServletContext().getRealPa
Lucene 2.2和Lucene 3.0.2在功能方面的差异发布说明中列出了每个版本的所有更改。读它们
每个版本的所有更改都列在发行说明中。读它们
为什么不阅读发行说明可能重复?为什么不阅读发行说明可能重复?
我有一个多文件格式的Lucene索引。在JAVA中将其转换为复合文件格式索引的最佳方法是什么
一种方法是创建一个新索引(writer设置为使用复合文件)并调用addIndexes()。有没有一种方法可以在不创建新索引和合并的情况下执行此操作?您可以在现有索引上创建IndexWriter,将“使用复合格式”设置为true,然后优化()。但是,我猜它不会比您提到的方法快。您可以在现有索引上创建IndexWriter,将“使用复合格式”设置为true,然后优化()。然而,我猜这不会比你提到的方法快
有没有一种方法可以使用数值比较运算符(>=,=0&&“property”在Neo4j中搜索手动索引可能您最好的选择是通过groovy使用Neo4j API,很像?您可以在所有边上使用Gremlin filter步骤,但这会进行表扫描:
g.E.filter{it.property >= 0 && it.property <= 1.6}
请注意,Neo4jTokens.QUERY\u HEADER解析为“%QUERY%”,因此您也可以这样编写它:
start = g.
我正在将我的代码从Lucene 3.5迁移到Lucene 4.1,但是在没有索引的情况下获取术语向量时遇到了一些问题
问题是,给定一个文本字符串和一个分析器,我需要计算术语向量(从技术上讲,找到术语及其频率)。显然,可以通过编写索引(使用IndexWriter)然后再读取它们(使用IndexReader)来实现,但我认为这会很昂贵。此外,我不需要文档频率(df)。因此,我认为一个无索引的解决方案是合适的
在Lucene 2和3中,用于上述目的的一种简单技术是使用QueryTermVector,它
我有一个与Luce 3.6配合使用的代码。我刚刚升级到Lucene 4.2.1,我很难使用WhiteSpaceAnalyzer(也是StandardAnalyzer和WhiteSpaceTokenizer)。它给了我“WhiteSpaceAnalyzer无法解析为类型”错误。感谢您的帮助 两种可能的可能性:
看到一些可能过于热心的camelcasing,虽然很有可能代码中没有复制它,但它是:
它从:org.apache.lucene.analysis.WhitespaceAnalyzer移动到
我知道可以将搜索路由到特定的碎片,但我希望将搜索路由到特定的节点。原因是一些节点比其他节点更强大,我希望在执行查询时,逻辑能够比较弱的节点更有效地命中这些节点
这可能吗?我知道,简短的问题,但请相信我,我做了大量的研究和谷歌搜索,却找不到答案。找到了答案:
搜索“&preference=\u primary\u first”时,只需将其附加到REST URL中即可。如果您要根据机器的类别设置感知属性,则可以使用该属性在该类别中设置。如果您使用的是基于java的传输或节点客户端,您只需将相同的感知
Iam使用LUCENE 4.6在PDF中搜索短语。我已经编写了以下代码。但它在“Analyzer”和“QueryPhrase”行中抛出了错误。请帮我做这件事
Analyzer analyzer = new Analyzer(Version.LUCENE_44);
// Store the index in memory:
Directory directory = new RAMDirecto
他们在Lucene中应用boosting的方法是基于每个值,而不是每个字段或每个文档吗
基本上,我会提前知道每个特定文档的多值字段中的值的提升,并且我会以某种方式将该提升值存储在lucene索引中
如果没有,Lucene有哪些可能的替代方案或扩展?这样就可以了
例如:
Document1:boost值为{apple,10},{pear,50}的关键字字段
Document2:boost值为{apple,15}的关键字字段
Document3:boost值为{apple,20},{pear,10}
我安装了Orchard 1.8安装程序,在管理区域的顶部有一条消息,上面写着“你需要启用像Lucene这样的索引实现模块。”这里令人困惑的是,Lucene已经根据管理区域安装/启用了,所以我有点迷茫。我在App_Data/Sites/Default中没有任何要删除的索引(这意味着没有损坏的索引),也没有创建索引的选项
我尝试过禁用/重新启用Lucene和搜索功能,但没有成功。有什么猜测吗?转到/Admin/Indexing并创建索引。无法-在Admin/Indexing中,它显示“当前没有索引”
标签: Lucene
remote-servercarrot2
我尝试使用远程服务器上的lucene索引作为同一服务器上安装的carrot2的输入。关于文档,这应该可以通过carrot2 dcs实现(文档第3.4章carrot2文档群集服务器:包括各种文档源。carrot2文档群集服务器可以从大量源获取和群集文档,包括主要搜索引擎和索引引擎(Lucene,Solr))
在安装Carrot2DCS 3.9.3之后,我发现lucene不能作为文档源。如何继续?要从Lucene索引对内容进行群集,该索引需要在DCS运行的服务器上可用(通过本地文件系统或作为NSF挂
我已将搜索索引添加到Sitecore 6.6网站。为了进行测试,我创建了两个与索引参数匹配的项,即使用被索引的单个模板
这个模板有一个名为“Story Data Item”的DropLink字段,我要做的是返回该字段的值与提供的Guid匹配的所有项目
下面的代码返回所有已索引的文档,当我运行它时,会返回这两个项目,这表明它们已被索引。此外,第一项满足以下条件:items.first().Fields[“Story Data item”]。Value==“{3F810A26-5D57-49CA-8
我是Elasticsearch的新手,这是我手头的任务
鉴于我的索引:
{
"my_index": {
"mappings": {
"_default_": {
"_all": {
"enabled": false
},
"properties": {}
},
"title": {
"_all": {
我最近一直在研究sitecore contentSearch API。当我尝试构建自定义索引时,我得到如下运行时错误
Could not find property 'initializeOnAdd' on object of type: Sitecore.ContentSearch.LuceneProvider.LuceneIndexConfiguration
这是我的配置示例
<configuration xmlns:patch="http://www.sitecore.net/xm
我想为字符串生成ngram字符。下面是我用于它的Lucene 4.1库
Reader reader = new StringReader(text);
NGramTokenizer gramTokenizer = new NGramTokenizer(reader, 3, 5); //catch contiguous sequence of 3, 4 and 5 characters
CharTermAttribute charTermAttribute = gramT
具有两种不同的生产露天(3.3.5和4.0.2)系统。我们已经准备好了
maxDocsForInMemoryMerge=40000和maxDocsForInMemoryIndex=16000
堆大小增加到18GB,然后服务器响应变慢。我们必须每周重新启动服务器以服务于生产用户
当Profile得知Lucene正在服务器上使用更多内存时。在某些链接上,找到了设置MaxDocsForMemoryMerge=0的解决方案,但不确定结果
有什么建议吗
提前谢谢。这些数字看起来很大!这两个属性的默认值都是
标签: Lucene
levenshtein-distancefuzzy-searchfuzzy-comparison
我有一个数据库表中大约1000万个文件的复合哈希,我希望找到彼此相当相似的文件。Spamsum哈希由两个最大64字节的CTPH哈希组成,它们如下所示:
384:w2mhnFnJF47jDnunEk3SlbJJ+SGfOypAYJwsn3gdqymefD4kkAGxqCfOTPi0ND:wemfOGxqCfOTPi0ND
它们可以分为三部分(在冒号上拆分字符串):
块大小:384在上面的散列中
第一个签名:w2mhnfnjf47jdnuek3slbjj+SGfOypAYJwsn3gdqymefD
我有一个内部对象的映射,如下所示:
{
"mappings": {
"_all": {
"enabled": false
},
"properties": {
"foo": {
"name": {
"type": "string",
"index": "not_analyzed"
假设我的文档有三个字段message,key,file\u name。还假设我想找到所有文档,如下所示:
message contains keyword A and B
key contains keyword C
file_name contains keyword D
我应该如何构造我的查询?我应该在这里使用query\u string还是match语句?您可以这样做:
POST /test_index/_search
{
"query": {
"bool": {
我有一个应用程序,我需要允许用户对文档执行全文搜索,并在需要时使用。eXist数据库是从用于与eXist对话的Django后端查询的
问题是,当用户使用不正确的语法进行全文搜索时,会在游戏后期发现。Django应用程序必须查询SQL数据库以确定搜索的一些参数。在构建完整的XQuery并访问eXist时,SQL查询已经运行,这意味着SQL查询的成本已经消耗殆尽。(我知道我可以将SQL端查询的数据封送到eXist中,以便只查询eXist。目前这不是一个选项。)
我想提前知道Lucene查询是否有语法
通过阅读,我了解到Elasticsearch中已删除的文档只是被标记为已删除,这样它们可能会在磁盘上保留一段时间
因此,我想知道是否有办法在Elasticsearch中恢复已删除的文档?已删除的文档和旧文档版本将通过段合并过程完全删除:(
此时,这些旧的已删除文档将从文件系统中清除。已删除的文档(或更新文档的旧版本)不会复制到新的较大段
所以无法撤消错误的删除操作?
我在Sitecore 8.1环境中创建了一个自定义Lucene索引,如下所示:
$(id)
$(id)
主人
/sitecore/内容/常规/产品存储库
假的
假的
真的
Sitecore.ContentSearch.LuceneProvider.LuceneDocumentBuilder,Sitecore.ContentSearch.LuceneProvider
真的
{843B9598-318D-4AFA-B8C8-07E3DF5C6738}
实际上,一个非常简单的索引指向一个根,包括一
我想收集查询中提供的各种术语的统计数据(即频率)。最有效的方法是什么?除了明显的“运行查询、收集所有文档、聚合字段值”之外,还有什么其他内容吗
似乎每个版本的ApacheLuceneAPI都在发生变化。如何从ApacheLucene 6.4.0的IndexReader中获取最频繁的术语
我看到了在Apache Lucene 6.4.0中不有用的代码,这就是适用于Lucene 6.4的代码。它在所有字段中查找最频繁的项,以便分别在字段调整代码中查找最频繁的项
IndexReader reader = DirectoryReader.open(dir);
final Fields fields = Multi
标签:elasticsearch Lucene
search-enginequerydsl
文件上说
span_包含:
大子句和小子句可以是任何跨度类型的查询。匹配跨距
从大到小包含匹配项的将被返回
span_在以下范围内:
大子句和小子句可以是任何跨度类型的查询。匹配跨距
从小到大,从大到小
至于查询匹配了哪些文档,没有区别。不同之处在于匹配的跨度
span_包含大的匹配项
span_内的匹配很少
查询将从匹配的span中获得提升,因此span\u containing将从big中获得提升,而span\u in将从匹配的little中获得提升
如果您的span_in或span_c
标签: Lucene
azure-cognitive-search
我有一个三明治的搜索索引。索引有三个字段:id、肉类和面包。每个字段都是一个Edm.String。在此索引中,以下是我的数据子集:
ID | Meat | Bread
-----------------------
1 | Ham | White
2 | Turkey | Hoagie
3 | Tuna | Wheat
4 | Roast Beef | White
5 | Ham | Wheat
6 | Roast Beef
这就是我如何从LucenePDF文档中获取详细信息的方式:
doc=LucenePDFDocument.getDocument(文件);
System.out.println(“字段列表:\n”+doc.getFields());
这是输出:
field list:
[<stored<path:D:\Kuliah\rancangan document indexing\dir-pdf\dua.pdf>,
stored<url:D:/Kuliah/rancangan d
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 78 页