Lucene-JSON对象的自定义分析器/解析器?
我需要一个非常特定的Lucene实现,它使用反序列化的JSON字符串存储多个“属性”字段 例如:Lucene-JSON对象的自定义分析器/解析器?,lucene,lucene.net,Lucene,Lucene.net,我需要一个非常特定的Lucene实现,它使用反序列化的JSON字符串存储多个“属性”字段 例如: Document: ID: "99" Text: "Lorepsum Ipsum" Properties: "{ "lastModified": "1/2/2015", "user": "johndoe", "modifiedChars": 2, "before": "text a", "after": "text b", }" Properties:"{
Document:
ID: "99"
Text: "Lorepsum Ipsum"
Properties: "{
"lastModified": "1/2/2015",
"user": "johndoe",
"modifiedChars": 2,
"before": "text a",
"after": "text b",
}"
Properties:"{
"lastModified": "1/2/2013",
"user": "johncotton",
"modifiedChars": 6,
"before": "text aa",
"after": "text bbb",
}"
Properties: "{
"lastModified": "1/3/2015",
"user": "johnmajor",
"modifiedChars": 3,
"before": "text aa",
"after": "text b",
}"
我知道ElasticSearch和Solr有在JSON对象中查找的实现,但我使用的是Lucene的核心API(3.0.5)
我的目标是使用lucene的API和一些附加的实现在JSON字符串中进行搜索,例如:
构建一种布尔查询类型,其中至少一个“属性”字段必须与查询中的所有值匹配。(例如,在“文本A”之前查询“+用户:tom+修改的chars:3+”等)
我有一些想法,但我不知道从哪里开始。我要问的是一些实现这种实现的高级想法。一个自定义分析器可能与查询解析器一起使用?
把它看作是一个开放的问题。所有的建议都是受欢迎的。 如果你总是搜索完整的值集…
为每个集合创建一个“属性”字段。该值将只是一组串联的值,即“1/2/2015:johndoe:2:text a:text b”
或者…为每个集合创建单独的文档。这将允许您搜索不同的值组合,而不会合并不同的集合
是的,这可能意味着复制文本字段。如果文本字段不大,那么我不会太在意(特别是如果您没有使用“存储”字段)
您需要在查询中组合文本和属性吗?(“文本:ipsum和属性:xxx”)
如果没有,则将文本放入另一个文档中
如果想法是为了获得“ID”字段而进行搜索,那么上面的一些组合应该会起作用