在弹性搜索中索引包含数学表达式的文档的最佳方法是什么?

2024-02-08

我试图解决的问题是我有一堆与数学表达式/公式相关的文档。我想通过公式或表达式搜索文档。

到目前为止,根据我的研究,我正在考虑将数学表达式转换为乳胶格式并作为字符串存储在数据库中(弹性搜索)。

通过这种方法,我可以搜索带有乳胶字符串的文档吗?

a2 + b2 = c2 的乳胶转换示例为 a^{2} + b^{2} = c^{2} 。这个字符串可以在弹性搜索中搜索到吗?


我同意用户@Lue E 的一些修改,并尝试使用简单的关键字方法,但给了我一些问题,因此我修改了使用方法keyword我自己的分词器定制分析仪 https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-custom-analyzer.html这应该可以解决您的大多数用例。

使用自定义分析器索引 def

{
    "settings": {
        "analysis": {
            "analyzer": {
                "my_custom_analyzer": {
                    "type": "custom",
                    "tokenizer": "keyword", --> to make it searchable
                    "filter": [
                        "lowercase", --> case insensitive search
                        "trim" --> remove extra spaces
                    ]
                }
            }
        }
    },
    "mappings": {
        "properties": {
            "mathformula": {
                "type": "text",
                "analyzer": "my_custom_analyzer"
            }
        }
    }
}

索引示例文档

 {
        "mathformula" : "(a+b)^2 = a^2 + b^2 + 2ab"
    }

{
    "mathformula" : "a2+b2 = c2"
}

搜索查询(匹配查询,使用索引时间相同的分析器)

{
    "query": {
        "match" : {
            "mathformula" : {
                "query" : "a2+b2 = c2"
            }
        }
    }
}

搜索结果仅包含第一个索引文档

 "hits": [
            {
                "_index": "so_math",
                "_type": "_doc",
                "_id": "1",
                "_score": 0.6931471,
                "_source": {
                    "mathformula": "a2+b2 = c2"
                }
            }
        ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在弹性搜索中索引包含数学表达式的文档的最佳方法是什么? 的相关文章

  • 创建数据库索引的最佳实践和“经验法则”有哪些?

    我有一个应用程序 它循环访问数据库表中的大量记录 并对该数据库中的记录执行大量 SQL 和 Net 操作 目前我在 PostgreSQL 上使用 Castle ActiveRecord 我在几个字段上添加了一些基本的 btree 索引 正如
  • 如何将2个匹配查询加入到elasticsearch的查询中?

    我想查询以下数据user id is 1 and name is John 写一个常用的SQL很容易 select from t where user id 1 and name John 但对我来说进行elasticsearch的查询并不
  • ElasticSearch JavaAPI (SearchScroll)- search_context_missing_exception","re​​ason":"找不到 id 的搜索上下文

    我正在获取超过100k使用一个索引中的文档searchScroll并在所有字段中再添加一个字段100K文件 然后再次将这些文档插入到另一个新索引中 我正在使用SearchScrollapi 也在设置大小searchSourceBuilder
  • 插件 (vim-latex) 在启动时导致 gVim 崩溃

    我正在尝试使用在 Windows XP 上使用 gVim 但是一旦我打开 tex 文件 或者一旦我set ft tex gVim 崩溃且没有可见的错误消息 控制台 vim 中不会发生崩溃 我已经按照设置说明进行了操作 据我所知 并且我尝试禁
  • elasticsearch查询字符串分析器针对不同字段使用不同的分析器

    当对具有不同分析器 stem ngram等 的多个字段执行查询时 elasticsearch是否对每个字段的查询字符串执行特定的分析 是的 除非您在查询中指定分析器 这请求参数 http www elasticsearch org guid
  • tikz:为节点设置适当的x值

    这个问题源于这个问题here https stackoverflow com questions 2772972 latex curly braces outside math 我想生成一个跨越一些文本行的大括号 问题是我必须手动对齐 x
  • Solr MoreLikeThis 不适用于多个分片?

    我在 SolrCloud 中有 5 个节点集群 每个节点有 2 个分片 Solr版本 6 3 0 现在 当我运行 mlt 查询时 它仅返回每个节点的结果 并且不会将它们分布在所有分片 节点上 即 没有给出任何结果 给出结果 我什至尝试将其指
  • ^ 和 _ 宏之后出现的数字(是:LaTeX 限制?)

    我在 LaTeX 中遇到了一个恼人的问题 我有一个大约 1000 行的 tex 文件 我已经有了一些数字 但是当我尝试添加另一个数字时 它会吐出 Undefined control sequence
  • ElasticSearch 嵌套查询 - 排除父文档

    尝试排除其中子文档之一与查询不匹配的顶级文档 对于下面的示例 我尝试排除其嵌套作业之一具有的所有文档current true 并与company name Elastic 但由于嵌套作业文档之一与current false和公司name E
  • Solr 过滤查询 - 字符串与整数

    假设我正在尝试查询一堆具有类别的文档 并且我想将查询限制为指定的类别 据我所知 这只是使用 fq 参数 过滤器查询 我想知道将参数设置为整 数而不是字符串或数据通常的情况是否会提高性能 我只是会在右侧犯错 但我想我应该仔细检查一下 以防万一
  • 在弹性搜索中使用 GET/POST 时的不同结果

    我正在通过 Elastic Search Head 插件尝试弹性搜索 当我通过 POST 提交查询时 结果符合预期 但是 当我使用 GET 尝试相同的查询时 我总是会返回索引中的所有值 那么 如何通过 GET 将查询传递到弹性搜索服务器 以
  • 如何添加到 OrientDB 中的空间索引?

    我正在使用工作室的 OrientDB 2 0 我使用文档中的代码成功创建了 Lucene 空间索引 CREATE class Place extends V CREATE property Place name string CREATE
  • Elasticsearch 单个字段的多个分析器

    我使用严格的预定义映射将不同类型的文档存储在单个索引中 它们都有一些字段 例如 body 但我希望在索引时对它们进行稍微不同的分析 例如 对特定文档使用不同的标记过滤器 并在搜索时以相同的方式处理 据我所知 分析器不能按文档指定 我还考虑使
  • 在 LaTeX 中自动将新句子中第一个单词的第一个字母大写

    我知道 LaTeX 的吹嘘点之一是它没有这种微软式的行为 尽管如此 它有时还是有用的 LaTeX 已经在您键入 非反斜杠 句点后添加了一个额外的空格 因此应该可以使其自动将后面的字母大写 是否有一个明显的方法来编写一个宏来执行此操作 或者是
  • 在小页面/子图中缩放时控制 LaTeX 中图形的字体大小?

    我正在使用 pgf tikz 图形 我想知道在 minipage subfig 环境中使用图形时如何控制图形中字体大小的缩放 有没有办法手动为 pgf tikz 图形或一般乳胶设置永久字体大小 以使字体大小与缩放无关 理想情况下 我希望能够
  • MongoDB - 解释特定的解释输出

    我使用的是 MongoDB 版本 2 4 8 test 2014 03 25 14 42 13 0 gt gt gt db users getIndexes v 1 key id 1 ns test users name id v 1 ke
  • 我们可以同时使用拼音标记和同义词吗?

    我正在尝试同时启用语音分析器和同义词 这似乎不起作用 它们一起使用有错吗 在下面的实现中 我希望使用同义词转换搜索查询 然后使用语音分析器来检索结果 但我的同义词在这里完全被忽略了 如果我在创建索引时删除语音分析器 那么同义词就可以正常工作
  • 在 Oracle 临时表上放置索引安全吗?

    我读过 不应分析临时表 因为它会破坏其他表的统计信息 指数怎么样 如果我在程序运行期间在表上放置索引 使用该表的其他程序会受到该索引的影响吗 索引是否会影响我的进程以及使用该表的所有其他进程 或者它会单独影响我的过程吗 所有的回复都不是权威
  • 无法使用 java 8 在 Windows 10 上安装 elasticsearch 5.1.1

    我正在尝试在安装了 java 8 111 的 Windows 10 笔记本电脑上安装 ElasticSearch 5 1 1 当我尝试安装 Elastic search 时触发错误 C Users 用户名 Downloads elastic
  • Pandas 使用什么规则来生成视图和副本?

    我对 Pandas 在决定数据帧中的选择是原始数据帧的副本或原始数据帧的视图时使用的规则感到困惑 例如 如果我有 df pd DataFrame np random randn 8 8 columns list ABCDEFGH index

随机推荐

  • Twitter 的 Bootstrap Datepicker 缺少 Glyphicons

    我正在尝试使用引导程序中的日期选择器 http eternicode github io bootstrap datepicker http eternicode github io bootstrap datepicker 并且一切正常
  • JNI 和构造函数

    我有一个已编译的库 需要在项目中使用 简而言之 它是一个用于与特定硬件交互的库 我拥有的是 a 和 dll 库文件 分别适用于 Linux 和 Windows 以及一堆 C h 头文件 其中包含其中描述的所有公共函数和类 问题是该项目需要使
  • 嵌入式Tomcat:如何配置请求线程数

    In 嵌入式Tomcat 我该如何配置请求线程数 我似乎无法让它发挥作用 我尝试了所有这些但没有成功 tomcat getConnector setProperty maxThreads 20 tomcat getConnector set
  • Python 中的裸词/新关键字

    我想看看是否可以定义新的关键字 或者 正如它们所称的那样销毁所有软件的 WAT 谈话 https www destroyallsoftware com talks wat当讨论 Ruby 时 用 Python 来讨论 我想出了一个在其他地方
  • C# 中的事件 - 定义和示例 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 事件发生在什么地方C 你能给我一个清
  • Haskell Parsec - 使用自定义令牌时错误消息的帮助不大

    我正在研究分离解析器的词法分析和解析阶段 经过一些测试后 我意识到当我使用 Parsecs Char 令牌之外的一些令牌时 错误消息的帮助不大 以下是使用 Char 令牌时 Parsec 错误消息的一些示例 ghci gt P parseT
  • 查找一周中的哪一天

    假设我在 R 中有一个日期 其格式如下 date 2012 02 01 2012 02 01 2012 02 02 R 中是否有任何方法可以添加另一列 其中包含与日期相关的星期几 数据集非常大 因此手动进行更改是没有意义的 df data
  • 计算文本文件中的行数

    我正在阅读文本文件中的行 我想知道这是否是一个好方法 我必须写这个函数numberoflines来减少number of lines variable加 1 是因为在 while 循环中 对于读取的每一行 它都会向 number of li
  • E/Volley:[194] BasicNetwork.performRequest:url 出现意外响应代码 307

    我试图在我的 Android 应用程序中通过 POST 将 json obj 通过 volley 发送到 api 并捕获 json 响应 但我不断收到此错误 E Volley 194 BasicNetwork performRequest
  • JavaFX:对话框内的TableView有重复的项目

    我的问题TableView及其物品 我创建了一个小Dialog窗口显示有关我的应用程序的警告 并在Dialog我有一个TableView单击按钮后会显示警告名称以及有关警告的一些信息 我创建了一个WarningUtil class Sing
  • 生成用于设置 Apple 推送通知的 .pem 文件

    我尝试并尝试生成 pem 文件 每次从客户帐户生成证书 然后使用终端生成 pem 文件 但它没有用 谁能给出一步一步的程序吗 要为您的 iOS 应用程序启用推送通知 您需要创建 Apple 推送通知证书 pem 文件 并将其上传给我们 以便
  • 从 C# COM dll 返回 S_FALSE

    我在 IDL 中定义了一个方法 如下所示 interface IMyFunc IDispatch id 1 helpstring method GetNextFunction HRESULT GetNextFunction in out l
  • 使用javascript隐藏文本框中的光标?

    如何使用 JavaScript 在 asp net 文本框中隐藏光标 我不想在文本框中看到闪烁的东西 Please不要这样做 你会破坏用户的期望 光标在那里是有原因的 当用户键入或点击删除 退格键等时 他们想知道它将发生在哪里 如果您想编辑
  • 将现有 pdf 添加到 fpdf

    有没有我可以调用的函数 以便将现有的 pdf 包含在我的fpdf file 例如 pdf gt AddPage from file example pdf 类似的东西 是否可以 fpdi 就是您正在寻找的 请参阅http www setas
  • CSS滚动条样式跨浏览器[重复]

    这个问题在这里已经有答案了 如何定义跨浏览器的 CSS 滚动条样式 我测试了这段代码 它只在 IE 和 Opera 中有效 但在 Chrome Safari 和 Firefox 中失败
  • 使用动态列和列名称进行逆透视

    我正在尝试取消透视具有大量列的表 其格式为 PID UID col1 col2 col3 下面的动态 SQL 将为我提供除列名之外的几乎所有内容 目标是使用逆透视值源自的列的名称填充 ID 字段 Build list of cols we
  • 在datagridview中如何使用复选框作为单选按钮?

    IDE Visual Studio c Winforms 应用程序 我投入了大约12个小时 但没有取得成功 作为DataGridView不提供单选按钮类型的单元格 所以我尝试使用复选框单元格作为单选按钮功能 即我只想选中一列中的一个复选框
  • 在 C# 中使用 XDocument 创建 XML 文件

    我有一个List
  • 无需登录即可在系统启动时启动应用程序

    我们有一个新的服务器正在运行 并且我们有一些新的程序执行导入例程 到目前为止一切顺利 但是有一个程序被放入自动启动文件夹 So 在管理员登录之前它不会运行 如果我们注销它就会停止 我想将其放入一个单独的会话中 这样它就可以在没有任何交互的情
  • 在弹性搜索中索引包含数学表达式的文档的最佳方法是什么?

    我试图解决的问题是我有一堆与数学表达式 公式相关的文档 我想通过公式或表达式搜索文档 到目前为止 根据我的研究 我正在考虑将数学表达式转换为乳胶格式并作为字符串存储在数据库中 弹性搜索 通过这种方法 我可以搜索带有乳胶字符串的文档吗 a2